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

ajax|web|程序

这并不是在诋毁Amazon,在非常有限的限定内它工作得相当优秀。但是与工作表相比,它所依赖的交互模型毫无疑问相当有限。

  那么,为什么在现代web应用程序中存在这么多的限制呢?目前,存在很多技术上的原因。因此,现在让我们作进一步分析。
三、网络的潜力

  互联网时代的伟大就在于世界各地所有的计算机互相联系,就象在一个非常大的计算资源之中。远程和本地过程调用变得很难区分,并且发行者已经不再清醒地了解它们在哪些物理机器上工作。 

  不幸的是,远程和本地过程调用是根本不相同的技术。

  在网络上的通讯是昂贵的(它们是慢并且不可靠的)。当一部分非网络代码被编译或解释时,各种方法和函数就象在其上操作的数据一样被编码为存储在相同的本地内存中的指令(图6)。这样,把数据传递给一个方法并返回结果就相当直接。

开发新一代Web应用程序(3)-ajax与php web开发">
图6 本地过程调用序列图-在此很少的元素如程序逻辑和数据模型都被存储在本地内存并能彼此直接看见。

  其实在底层,为了发送和接收数据,很多计算运行于一个网络连接的两端(图7)。实际上,这种计算远不如沿着物理线路的运行更导致系统的减慢-各级的编码与解码遍及通讯的各个方面,从沿着线路传输的物理信息,把这些信息翻译为二进制的1和0,错误检查和重发送,到重新整合该二进制序列。


图7 一个远程过程调用序列图。在一台机器上的程序逻辑试图操作在另外一台机器上的数据模型。

  调用函数的请求必须被编码为一个稍后将被串行化的对象(也即,被转换成一个线性字节集合)。然后,被串行化的数据被传递到应用程序协议(现在通常为HTTP)并且通过物理传输发送。

  在远程机器上,该应用程序协议被解码,并且数据的字节被反串行化以创建该请求对象的一个副本。然后,这个对象被应用到数据模型和一个生成的响应对象上。为了联系该响应和调用函数,该串行化和传输层必须被再一次导航,最后导致一个响应对象被返回到调用函数。 

  这些客户端是复杂的但是适合于自动化实现。现代的编程环境例如Java和微软.NET框架都提供了这种功能的自由使用。尽管如此,当产生一个远程过程调用(RPC)时,在内部有大量的活动在进行并且如果这样的调用太自由的话,性能也会受到影响。

  因此,通过网络的调用永远不会象调用本地内存中的一个方法那么富有效率。而且,网络的不可靠性(并因此需要重新发送失去的信息包)也使得这种低效在不断变化且很难预测。在你的本地机器上的内存响应性不仅更好一些而且相比之下可以被很好地定义。

  这但与可用性有什么关系呢?已证明,其关系相当大。

  一个成功的计算机UI的确需要模仿我们真实的世界期望。该交互的最基本原则之一是,当我们点按某东西时,它能够立即响应。在点按和响应之间的轻微的延迟都会带给用户迷惑并使之分神-把用户的注意力从手头的任务转移到UI本身。

  必须做所有的额外工作来穿越网络常常就足已减慢一个系统,以至于该延迟变得相当引人注意。在一桌面应用程序中,我们需要做出糟糕的可用性设计决策来使得应用程序感觉起来充满错误或不具有响应性,但是在一个联网应用程序中,不需要我们关心这些!

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

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

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

ajax|web|程序 开发新一代Web应用程序(2)-ajax与php web开发">图2 一个独立桌面应用程序的图解架构. 该应用程序运行于其自身的进程之中-在其内数据模型和程序逻辑彼此清晰可见.在同一台计算机上运行的该应用程序的第二个实例除了经由文件系统之外无法存取第一个实例的数据模型.典型地,全部程序状态存储在单个的文件中-当该应用程序运行时它被锁定以阻止任何信息的同步交换. 图3 客户端/服务器系统和n层架构图解. 该服务器提供一个客户可以用之进行交互的可共享的数据模型.客户端仍

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

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

使用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文档,