读书 -《Ajax模式与最佳实践》- 内容分块模式(上)

意图

  原文:内容分块模式使得增量地建造一个HTML页面成为可能,从而允许单个HTML页面的逻辑分布在不同的地点,由用户来决定内容的加载时间和逻辑。

  注解:作者意图应该在于实现是Web2.0,就像博客里的豆瓣读书分享。不过中国的现实是,还很少互联网企业能像Google、Twitter、Facebook能提供完整的API。Web2.0分享主要是通过Script标签Flash等等的注入实现的。RESTful的Web架构也因为企业的开放意愿不高,很难发挥作用。内容分块多用在新闻门户、电子商务等的分类信息显示。

动机

  原文

  最初,当Web尚处在它的幼年时,HTML内容设计师创建不完整的文档。通过使用文档链接使这些不完整的页面变得完整,一个完整的文档是文档树中页面的总和。

  理想情况下,网站的开发者想要获得的是一种能力,能够改变需要改变的内容,而且保持其余内容不变。毕竟,未曾改变的内容应该保持不变,而且不是重新加载。

  注解:三种更新技术的比较:1、通过链接转到节点页面;2、通过页面帧(FrameSet、IFrame)控制局部更新;3、通过Ajax局部更新/Ajax作为载体显示注入内容

  更新技术1

    优点:逻辑独立,编写简单。

    缺点:难以保持当前状态(页面浏览位置正在编辑的内容等)。

    启示:尽可能通过Url来区分独立的业务,使业务之间耦合降低,使页面更易于分享。(也就是URL路由兴起的原因

  更新技术2

    优点:容易保持较固定状态,包括使用状态、信息、设置等等繁多而次要的个人信息。

    缺点:FrameSet难以布局,IE下IFrame也有bug,帧之间沟通不方便。

    启示:可以用页面帧来加载业务页面,这样既能保持用户信息,又使业务页面解耦。

  更新技术3

    优点:处理流程容易维护。

    缺点:通信逻辑复杂,缓存维护困难。(不过已有很多优秀的js库可以帮助降低复杂度)

    启示:局部独立内容注入。(局部独立内容注入已被大量用于门户网站和分享网站

适用性

  1、内容关系稳定(原文:每个区域的内容是未知的,但是内容将会放到哪个区域是已知的。)

  2、页面内容很多,但更新内容很少(原文:当将要下载的内容太大了,会导致用户过多的等待的时候。)

  3、内容分块独立(原文:当显示的内容之间彼此不相关的时候。)

相关模式

  1、原文:内容分块模式是任何Ajax应用的核心模式

  2、原文:处理阶段:生成事件、请求、响应、分块的注入

体系架构

  1、在Web应用中的实现顺序

    更新技术2/3 对于 更新技术1 的优点:

    a.无需下载重复内容

    b.可以应用于不同上下文(根据环境的css和js变化)

    c.只更新特定范围

    d.环境不受影响(不代表没有受影响的风险)

  2、在内容分块中定义内容

    a.HTML

    b.图片

    c.JavaScript(逻辑代码)

    d.XML

    e.JSON

    注释:原文提到当数据结构有复杂筛选需求的时候,因为有XPath的缘故,XML比起JSON是有优势的。但是我觉得如果业务需要用到XPath的时候,客户端已经是自组建界面RIA了(如GMail),内容分块的作用纯粹是数据下载。一般情况用JSON没有太大问题。

posted @ 2010-05-26 00:42  gzterrytan  阅读(1473)  评论(1编辑  收藏  举报