探索一个简单的 Asynchronous JavaScript + XML(Ajax)系统,在该系统中,用户可通过添加和布置预先做好的小部件来装配页面。虽然很多站点也提供了这种功能,但是这个易用的系统允许您在自己的站点进行操作,并为创建新的小部件提供一个简单的库。
本文描述一个简单的系统,该系统让 Web 站点用户可以构建自己的 Web 页面。通过这个系统,用户可以在它们的页面上放置和安排文本和图像,然后保存他们的工作。本文中的代码是独立的,没有使用第三方的库。虽然在现实中您未必这么做,但这为研究实现技巧提供了很好的基础。
这个系统中的代码可分为 5 个部分:
- 小部件: 小部件 是组成 Web 页面的一个个的元件。本文只考虑两种小部件:一种是可编辑的文本小部件,另一种是图像小部件。当然,您也可以创建很多其他类型的小部件。但是,这里我更感兴趣的是支持小部件的基础设施,而不是多种多样的选项。
- 布局:这个系统的整个功能就是让您可以通过创建、移动和缩放文本和图像小部件来创建 Web 页面。这里并没有发生什么大事情 — 只是一些鼠标事件处理器、
<div>
大小调整等。很多文章和教程已对此作了大量的描述,本文不再重复。
- 持久性:用户必须保存他们的工作,并在以后再次装载它,所以需要一个持久性机制。您将使用基本的串行化将数据转换成可保存的格式,并使用文档对象模型(Document Object Model,DOM)存储来存储它。DOM Storage 是在 HTML version 5 规范中定义的,较新版本的 Mozilla Firefox 中实现了该功能。
- 点击-拖动功能:。。。
本文转自IBM Developerworks中国