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

ajax|web|程序

一、引言

  一个理想的用户接口对用户最好是不可见的-仅在用户需要时提供选择,否则并不干涉他们的工作而让其专注于手头的工作。然而,这并不是一件容易的事情。如今,我们变得习惯于通过并不十分令人满意的UI进行日常工作,直到有人向我们展示一种更好的方法。现在,我们才逐渐认识到我们当前的方法在做这些事情时是多么吃力。

  由于用于显示文档内容的基本web浏览器技术又被推进一步进而超出以前它们所能及的范围,所以,如今的互联网正在经历着这样的实现。

  Ajax(异步JavaScript+XML)是一个非常新的名字,为Adaptive Path的Jesse James Garrett所创建。其中,Ajax的某些部分以前被描述为动态HTML和远程脚本。

  Ajax的出现不仅仅是一个新名字的问题。从技术和商业的角度看,围绕Ajax还有大量激动人心的东西。从技术上讲,Ajax实现了web浏览器技术中大量的尚未实现的潜力。从商业上看,Google和其它一些主要商家正在逐步使用Ajax技术,从而让公众认识到一个web应用程序所能做的事情。

  以前我们习惯的典型web应用程序如今正在承受着巨大的压力,因为逐渐复杂的基于万维网的服务正日趋成熟并开始应用于互联网。各种新技术争相涌现出来以克服这些问题,而Ajax仅使用现有的互联网技术就能够更好地表达这些思想。

  利用Ajax,我们重用了一堆原有技术但却扩展了它们原来所能及的范围。我们需要能够管理这种我们引入的复杂性。本文将讨论怎样实现这些技术,而且还要讨论一下管理大型Ajax工程的问题。我们将介绍Ajax设计模式及其怎样帮助我们完成工作。设计模式帮助我们捕获我们的知识和经验,用我们现在的技术并且使之与其它对象进行通讯。通过把规则引入到代码基之上,它们就能够方便创建应用程序-可以据变化对工程加以修改和扩展。使用设计模式进行开发甚至是一种喜悦!

  为什么说Ajax是丰富的客户端?

  构建一个丰富的客户端接口比设计一个WEB页面要复杂。那么是东西导致我们这样做的?好处有哪些?什么是丰富的客户端?

  一个丰富的客户端有两个关键特点:它是丰富的,而且它是一个客户端。

  让我稍作解释。丰富指的是客户端方式。一个丰富的客户端模型-是指它能够支持各种输入方法且能够直观又非常及时地作出响应。尽管我们称其为"丰富的",但是它必须与象字处理器和工作表等现代桌面应用程序一样好才真正丰富。下面让我们看一下为达此目的所具体要求的实现技术。

  二、比较用户体验

  在这里,让我们讨论一个工作表程序的实例。我在工作表输入一些简单的公式时,我可以有几种方式与之交互-现场编辑数据,用键盘和鼠标导航数据和通过鼠标拖动重新组织数据。

  当我在操作这些时,软件给我反馈-鼠标光标形状改变,当我在按钮上移动时按钮高亮,选定的文本改变颜色,高亮的窗口和对话框以不同形式显示,等等(图1)。


图1 这个桌面工作表应用程序说明了多种用户交互的可能性。

  这些是当今用户丰富的交互的主要表现。这样的工作表应用程序就是一个丰富的客户端吗?还不是。

  在一个工作表或类似的桌面应用程序中,逻辑和数据模型都在一个封闭的环境中运行-在此它们彼此都能清晰可见,但是却把外界拒之门外(图2)。我的客户端定义是一个程序-它能够与一个不同的独立的进程通讯-典型地它运行于一个服务器上。传统地,该服务器比客户端更大更强壮并且存储了海量信息。客户端允许终端用户观看和修改这些信息,并且如果有一些客户连接到同一个服务器上,它允许他们分享该数据。图3显示出一客户机/服务器架构的简单图解。

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

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

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

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

使用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应用程序之基础篇

一. 什么是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文档,