首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Dojo 离线技术应用:支持离线功能的 Web 编辑器-1

Dojo 离线技术应用:支持离线功能的 Web 编辑器-1

概述使用 Dojo 离线功能可以在页面加载时保存页面内容及其相关的图片、CSS 与 JavaScript                等资源,如此,即便在离线情况下我们也能够继续对页面进行操作,并且操作内容可以被如实地保存于本地,并在与服务器的连接被恢复时自动同步至服务端。使用                Dojo 离线功能,可以有效提高用户访问的可靠性,并增进用户的体验。
在《 》一文中,我们介绍了 Dojo                离线功能的基本功能、实现原理及编程模式,本文中,笔者将以一个完整的示例为读者介绍如何将 Dojo 离线技术应用于实际。贯穿全文的示例是一个在线的                Web 编辑器。在这个示例中,我们将完成:如何为一个已有的在线 Web                编辑器引入离线编辑功能,同时还包括如何编写相应的服务器端代码,以接受并同步来自客户端的编辑内容。通过阅读本文,读者能够了解到使用 Dojo                离线库的完整过程,以及使用过程中的一些细节与注意事项。
Moxie 离线编辑器Moxie 是一个包括服务器端与客户端实现的较为完整的 Dojo 离线应用,功能较为单一,程序结构清晰,代码简洁,是一个较好的 Dojo                离线示例应用程序,从中我们可以系统地学习如何使用 Dojo 离线库进行页面缓存和处理各种事件等。
我们在使用在线编辑器的过程中,经常会遇到由于编辑时间过长导致 session                过期,或是网络连接断开,编辑内容无法保存的情况。较为常见的解决方式是在服务器端设置一个较长的 session 过期时间或是在客户端每隔一段时间(在                session 过期时间以内)自动提交编辑器的内容。过长的 session                过期时间会导致安全问题,而客户端定期保存会导致不必要的网络流量,增大服务器压力,尤其是当编辑内容很大的时候,更是如此。Dojo                离线库的出现为这个问题提供了一种新的解决方式,无论是 session                过期还是网络中断,我们都可以先在客户端保存编辑内容,在与服务器连接恢复时再将客户端暂存的内容同步到服务器上。
Moxie 应用的主要功能是提供了一个基于浏览器的文本编辑器,我们可以为当前编辑的内容取一个名字,然后以 < 文件名,文件内容 >                键值对的方式提交到服务器保存。客户端还能够加载服务端已保存的文件列表,通过选择文件名加载对应的文件内容进行编辑。由于使用了 Dojo                离线库,即使在离线的情况下我们也能从本地读取文件内容进行编辑,或是将编辑的内容保存在本地,在与服务器连接恢复时再进行同步。
本应用的实现分为服务器端和客户端两个部分,服务器端是采用 Java 语言实现的 Web 应用,通过 servlet                接收请求,实现保存或读取文件内容的功能。客户端通过 Dojo                离线库和一个文本编辑器实现了文件离线编辑器的功能。由于服务器端实现特定于应用需求,不具有普遍意义,且服务器端功能较为简单,因此本文只概要介绍服务器端的功能和设计,不涉及具体编码细节,有兴趣的读者可以参考其源码。
如何运行我们可以通过 HTTP 下载 ,或者通过 SVN 下载,具体参见 。如果您不希望下载源码,可以通过 Dojo 提供的基于 Web 的  查看其内容。我们可以看到,其中包含了基于 Dojo Offline 的客户端代码,以及完成服务器端响应的                Java 代码。为了完成服务器端响应功能,zip 包中随附了一个轻量级的 Web 服务器—— Jetty,还有一个轻量级的数据库——                Derby。我们的服务器端代码主体是一个 Servlet,它将负责接收来自客户端的 HTTP 请求,并针对请求的类型对数据库进行相应存取。
在开始运行程序之前请先确认,我们所使用的 JDK 必须是在 1.5 及 1.5 版本以上。
运行服务器端程序十分简单。只需要在命令行下定位到在线编辑器的根目录处,然后输入如下命令即可:
java -jar editor.jar
随后,Jetty 服务器将会启动,包括 Derby 数据库在内,无需额外的配置,只待服务器启动完毕后,打开浏览器并输入:
http://localhost:8000/demos/offline/editor/editor.html
如此,你就可以访问到在线编辑器了。
返回列表