使用AJAX技术开发新一代Web应用程序(2)

ajax|web|程序

开发新一代Web应用程序(2)-ajax与php web开发">
图2 一个独立桌面应用程序的图解架构。

  该应用程序运行于其自身的进程之中-在其内数据模型和程序逻辑彼此清晰可见。在同一台计算机上运行的该应用程序的第二个实例除了经由文件系统之外无法存取第一个实例的数据模型。典型地,全部程序状态存储在单个的文件中-当该应用程序运行时它被锁定以阻止任何信息的同步交换。


图3 客户端/服务器系统和n层架构图解。

  该服务器提供一个客户可以用之进行交互的可共享的数据模型。客户端仍然维持它们自己的部分数据模型以达到快速存取。多个客户可以与同一个服务器进行交互,而此时在单个对象或数据库行良好粒度级上控制的资源被锁定。该服务器可以是一个单个的进程,就象在90年代以前的早期的传统型客户端/服务器模型或由若干中间件层、外部web服务等组成的现代模型。在任何情况下,从客户的角度来看,服务器具有单个入口点并且可以被认为是一个黑盒子。

  当然,在一现代的N层架构中,服务器将能与例如数据库这样的后端服务器通讯-这导致了中间件层的出现-它们既充当客户端又充当服务器端。典型地,我们的Ajax应用程序位于这个链的一端上-只担当客户端,所以我们可能把整个N层系统看作单个黑盒子-我们把它标记为服务器,以便于我们当前的讨论。

  我的工作表只专注于它自己的存储在本地内存和本地文件系统上的数据。如果它架构良好,数据层和描述层之间的耦合可能相当松散,但是我无法把它通过网络分解与共享。所以,从我们的描述层目标来看,它不是一个客户端。

  当然,Web浏览器是客户端,它连接web服务器并从中进行页面请求。这些浏览器具有一些丰富的功能来管理用户的web浏览,例如后退按钮、历史列表和多页面存储多个文档。但是如果我们把一个特定站点的web页面看作一个应用程序,那么这些通用浏览器控制便不能再关联到应用程序,就象Windows开始菜单或window列表相关于我的工作表一样。

  让我们看一个现代web应用程序。主要因为每个人可能都听说过它,所以我们将选择Amazon-在线书商为例(图4)。现在,我把自己的浏览器指向Amazon站点;因为该站点从我的上次访问能够记得我是谁,所以它先给我显示一个友好的问候、推荐书列表和关于我已购买书的历史信息。


图4 Amazon.com首页。该系统记得我以前访问过该站点,其中可导航的链接是通用信息和私人信息的混合。

  从建议列表中点击一个标题将把我导向一个独立的页面(也即,该屏幕闪烁一下,于是我就失去了几分钟前可以看到的列表)。于是新页面中又会充满各种上下文信息(见图5)。


图5 Amazon.com站点书籍详细资料页面。

  再一次,大量的结合有通用和私人信息的超链接出现。尽管如此,大量的细节与图4所示极为相同-这,由于web浏览器的基于文档的操作,必须被重新转送到每个页面。

  简言之,我向你展示了非常丰富的紧密联系的信息。而且我与这种信息交互的唯一方式是通过点按超链接并且填写文本表单。如果我在浏览站点时的键盘输入过程中睡着了并且第二天才醒来,那么在我刷新全部页面之前我不会知道新的哈里·波特书已经发行。我不可能带着我的列表从一个页面转到另一个页面,并且我不可能缩放该文档的一部分来一次观看多处的内容。 

  • Ajax: 一个建立Web应用的新途径
  • Ajax的错误处理机制探讨(2)
  • Ajax的错误处理机制探讨(1)
  • 初次体验.NET Ajax无刷新技术
  • Rails系统中的AJAX开发技术简析(4)
时间: 2024-09-04 08:04:43

使用AJAX技术开发新一代Web应用程序(2)的相关文章

使用AJAX技术开发新一代Web应用程序(4)

ajax|web|程序 由于网络潜力的不可预测性,这种可察觉的错误来来去去,并且测试应用程序的响应性也可能变得更为困难.因此,网络潜力是真实世界应用程序具有可怜的交互性的最通常的原因.四.异步客户端 在实际中,我们必须尽量使UI响应独立于网络活动.幸好,一段固定时间的响应经常就足够了,只要它是及时的.让我们再次看一下实际中的问题.我的早上例程的主要任务之一是唤醒我的孩子们上学.我可以站在他们上面戳他们直到他们起床并穿上衣服,但这是一相当花费时间的方式,留下很长的一段时间我几乎无事可做(图8).

使用AJAX技术开发新一代Web应用程序(3)

ajax|web|程序 这并不是在诋毁Amazon,在非常有限的限定内它工作得相当优秀.但是与工作表相比,它所依赖的交互模型毫无疑问相当有限. 那么,为什么在现代web应用程序中存在这么多的限制呢?目前,存在很多技术上的原因.因此,现在让我们作进一步分析.三.网络的潜力 互联网时代的伟大就在于世界各地所有的计算机互相联系,就象在一个非常大的计算资源之中.远程和本地过程调用变得很难区分,并且发行者已经不再清醒地了解它们在哪些物理机器上工作.  不幸的是,远程和本地过程调用是根本不相同的技术. 在网

使用AJAX技术开发新一代Web应用程序

ajax|web|程序 一.引言 一个理想的用户接口对用户最好是不可见的-仅在用户需要时提供选择,否则并不干涉他们的工作而让其专注于手头的工作.然而,这并不是一件容易的事情.如今,我们变得习惯于通过并不十分令人满意的UI进行日常工作,直到有人向我们展示一种更好的方法. 现在,我们才逐渐认识到我们当前的方法在做这些事情时是多么吃力. 由于用于显示文档内容的基本web浏览器技术又被推进一步进而超出以前它们所能及的范围,所以,如今的互联网正在经历着这样的实现. Ajax(异步JavaScript+XM

使用AJAX技术开发新一代Web应用程序(5)

ajax|web|程序 这种客户端方式已经根深蒂固于过去十多年间的每天的商业互联网之中.友好的WYSIWYG web创作工具把我们的站点可视化为一个页面集合.服务器端web框架把这种页面间的转换建模为状态转换图.经典web应用程序,在页面刷新时,与不可避免的缺乏响应紧密结合,不可能容易地求助于异步处理器解决方案. 但是Amazon基于其网站已经取得了商业上的成功.当然,经典web应用程序不可能象那样不可用?为了理解为什么web页面可以适合于Amazon而不适用于每个人,我们应该考虑一下使用模式的

使用AJAX技术开发新一代Web应用程序(1)

ajax|web|程序 一.引言 一个理想的用户接口对用户最好是不可见的-仅在用户需要时提供选择,否则并不干涉他们的工作而让其专注于手头的工作.然而,这并不是一件容易的事情.如今,我们变得习惯于通过并不十分令人满意的UI进行日常工作,直到有人向我们展示一种更好的方法.现在,我们才逐渐认识到我们当前的方法在做这些事情时是多么吃力. 由于用于显示文档内容的基本web浏览器技术又被推进一步进而超出以前它们所能及的范围,所以,如今的互联网正在经历着这样的实现. Ajax(异步JavaScript+XML

用AJAX开发智能Web应用程序之基础篇

一. 什么是AJAX? 这个名字代表了异步javascript+XMLHTTPRequest,并且意味着你可以在基于浏览器的javascript和服务器之间建立套接字通讯.其实AJAX并不是一种新技术,而是已经成功地用于现代浏览器中的若干成功技术的可能性组合.所有的AJAX应用程序实现了一种"丰富的"UI--这是通过javascript操作HTML文档对象模型并且经由XMLHttpRequest实现的精确定位的数据检索来实现的.典型的示例AJAX应用程序是Google Labs(htt

用AJAX开发智能Web应用程序之基础篇(1)

ajax|web|程序 一. 什么是AJAX? 这个名字代表了异步JavaScript+XMLHTTPRequest,并且意味着你可以在基于浏览器的JavaScript和服务器之间建立套接字通讯.其实AJAX并不是一种新技术,而是已经成功地用于现代浏览器中的若干成功技术的可能性组合. 所有的AJAX应用程序实现了一种"丰富的"UI--这是通过JavaScript操作HTML文档对象模型并且经由XMLHttpRequest实现的精确定位的数据检索来实现的.典型的示例AJAX应用程序是Go

如何使用Ajax技术开发Web应用程序(3)

ajax|web|程序 在这个关于AJAX系列的第三部分中(相关文章:第一部分.第二部分),我们将学习如何使用AJAX与服务端进行写作以及这些技术如何产生强大的web应用程序.如果你对学习如何构建类似GMail或者Google Maps的web程序感兴趣的话,这是一篇基础的入门(虽然那两个东东会比我们在这篇文章中提及的内容复杂的多).在这篇文章中,我使用PHP作为服务端语言,但AJAX能够和任何服务端语言进行很好的兼容,所以你尽可以选择你所钟爱的任何语言! 我们还是从我们上一篇文章的代码(喏,就

如何使用Ajax技术开发Web应用程序(2)

ajax|web|程序 在上一篇文章中,我们讨论了如何通过javascript从一个远程XML文件中取得数据.在这篇文章中,我们将学会怎样对数据作更复杂的处理.作为一个示例,我们会准备一组XML数据,将数据分割成独立的片断并以不同的方式展示这些片断(取决于它们是如何被标识的). 这篇文章是建立在上一篇文章中构造的示例代码的基础之上,所以如果你不能理解我们现在的代码,你可以回过头去读第一篇文章(sheneyan注:就在上面). 开始- 让我们开始我们的第一步:构造XML.我们准备写一个XML文档,