正在加载图片...
把戏联系在一起 浏览器大战导致 JavaScript成了个被误解的、病态的孩子,Ajax可以看作是他的康复中心[6] 只要适当引导,然后给它配上合适的框架, JavaScript就很有可能变成因特网的模范公民。 它能真正增强Web应用的实用性,而且不强迫用户安装额外的软件,或者逼迫用户抛弃自 己心爱的浏览器。得到广泛理解的成熟的工具可以帮助我们达成这一目标。本书后面会大量 提到的设计模式就是这样一类工具 推广和普及一项新技术,既是技术事务,也是社会行为。一旦技术已经成熟,人们还需要领 会应该如何去使用它。这一步骤常常是通过用它来做我们很熟悉的事情开始的。比如,早年 的自行车叫做“木马轮”或者“蹬行马”,靠脚使劲蹬地的反作用力来前进。随着这一技术 渐渐为大众所接受,后来的发明者们会发明出这一技术新的使用方式,给它加上踏板、刹车、 链条齿轮以及充气轮胎。每一次的发明创造,都使得自行车中马的影子越来越淡,以至于彻 底消失(图1-10) 相同的过程也发生在如今的web开发领域。Ajax背后的技术有能力将Web页面转换成某种 完全不同的新东西。早期Ajax的使用尝试使得Web页面开始变得像“木马轮”一样不伦不 类。要领悟Ajax的精髓,我们就要忘掉web的页面概念,也就是说,我们要打破这些年来 所形成的经验。就在Ajax正式命名后的这几个月,这样的事已经发生了不少。 图1-10现代自行车的发展 12Ajax的四个基本原则 我们用到的很多框架中都已经固化了基于页面的传统应用模式,同时这些应用模式也已经深 深进入了我们的思想中。我们花几分钟来揭示出哪些核心概念是我们需要重新思考的,以及 如何从Ajax的角度来重新思考。 21浏览器中的是应用而不是内容 在传统的基于页面的web应用中,浏览器扮演着哑终端[刁]的角色。它对用户处于操作流程 哪一阶段一无所知。这些信息全部都保存在服务器上,确切地说,就是在用户会话上。时至 今日,服务器端的用户会话早已是司空见惯。如果你使用Java或者NET编程,服务器端的 用户会话更是标准AP的一部分——还有 Request、 Response、MME类型—一没有了它们 简直不可想象。图1-11描绘了传统Web应用典型的生命周期 当用户登录或者以其他方式初始化一个会话时,系统会创建几个服务器端的对象。例如,电 子商务类型的网站需要创建表示购物车以及用户身份证明的对象。同时将浏览器站点的首页 呈现给用户,这个HIML标记的数据流由模板文件以及特定于该用户的数据和内容(例如 该用户最近浏览的商品列表)组成。 用户每次和服务器交互,都会获得另一个文档。在这个文档中,除了特定于该用户的数据以 外,包含的其他模板文件和数据都是相同的。浏览器总是忠实地丢弃掉老的文档,显示新的 文档,因为它是哑终端,而且也不知道还可以做些什么。 当用户选择退出或者关闭浏览器的时候,应用退出,会话消失。这个时候持久层会把用户下 次登录后需要显示的信息存储起来。Ajax则不同,它把一部分应用逻辑从服务器端移到了 浏览器端,图1-12描绘了这一情况。把戏联系在一起。 浏览器大战导致 JavaScript 成了个被误解的、病态的孩子,Ajax 可以看作是他的康复中心[6]。 只要适当引导,然后给它配上合适的框架,JavaScript 就很有可能变成因特网的模范公民。 它能真正增强 Web 应用的实用性,而且不强迫用户安装额外的软件,或者逼迫用户抛弃自 己心爱的浏览器。得到广泛理解的成熟的工具可以帮助我们达成这一目标。本书后面会大量 提到的设计模式就是这样一类工具。 推广和普及一项新技术,既是技术事务,也是社会行为。一旦技术已经成熟,人们还需要领 会应该如何去使用它。这一步骤常常是通过用它来做我们很熟悉的事情开始的。比如,早年 的自行车叫做“木马轮”或者“蹬行马”,靠脚使劲蹬地的反作用力来前进。随着这一技术 渐渐为大众所接受,后来的发明者们会发明出这一技术新的使用方式,给它加上踏板、刹车、 链条齿轮以及充气轮胎。每一次的发明创造,都使得自行车中马的影子越来越淡,以至于彻 底消失(图 1-10)。 相同的过程也发生在如今的 Web 开发领域。Ajax 背后的技术有能力将 Web 页面转换成某种 完全不同的新东西。早期 Ajax 的使用尝试使得 Web 页面开始变得像“木马轮”一样不伦不 类。要领悟 Ajax 的精髓,我们就要忘掉 Web 的页面概念,也就是说,我们要打破这些年来 所形成的经验。就在 Ajax 正式命名后的这几个月,这样的事已经发生了不少。 图 1-10 现代自行车的发展 1.2 Ajax 的四个基本原则 我们用到的很多框架中都已经固化了基于页面的传统应用模式,同时这些应用模式也已经深 深进入了我们的思想中。我们花几分钟来揭示出哪些核心概念是我们需要重新思考的,以及 如何从 Ajax 的角度来重新思考。 1.2.1 浏览器中的是应用而不是内容 在传统的基于页面的 Web 应用中,浏览器扮演着哑终端[7]的角色。它对用户处于操作流程 哪一阶段一无所知。这些信息全部都保存在服务器上,确切地说,就是在用户会话上。时至 今日,服务器端的用户会话早已是司空见惯。如果你使用 Java 或者.NET 编程,服务器端的 用户会话更是标准 API 的一部分——还有 Request、Response、MIME 类型——没有了它们 简直不可想象。图 1-11 描绘了传统 Web 应用典型的生命周期。 当用户登录或者以其他方式初始化一个会话时,系统会创建几个服务器端的对象。例如,电 子商务类型的网站需要创建表示购物车以及用户身份证明的对象。同时将浏览器站点的首页 呈现给用户,这个 HTML 标记的数据流由模板文件以及特定于该用户的数据和内容(例如 该用户最近浏览的商品列表)组成。 用户每次和服务器交互,都会获得另一个文档。在这个文档中,除了特定于该用户的数据以 外,包含的其他模板文件和数据都是相同的。浏览器总是忠实地丢弃掉老的文档,显示新的 文档,因为它是哑终端,而且也不知道还可以做些什么。 当用户选择退出或者关闭浏览器的时候,应用退出,会话消失。这个时候持久层会把用户下 次登录后需要显示的信息存储起来。Ajax 则不同,它把一部分应用逻辑从服务器端移到了 浏览器端,图 1-12 描绘了这一情况
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有