AJAX应用程序体系结构,第1部分

无论您是系统管理员、设计人员还是开发人员,您的工作都会受到 AJAX 的重大影响。管理员必须确保安全防护足够高,以便应对各种可能的新类型攻击。Intranet 管理员则必须保证任何浏览器上都没有禁用 JavaScript。Web 设计人员需要面对一些新的挑战,因为 AJAX 可实现的功能是以前无法实现或不切实际的。而开发人员则需要熟悉新的 API 和新的全面编程方法。尽管如此,AJAX 对架构师来说究竟有何意义?

AJAX 应用程序具有挑战性,因为它们引入了全新的概念和新的基础。AJAX 模式横跨客户端和服务器环境,因此架构师角色必不可少。对于确定客户端上发生的逻辑和处理与服务器上保留的内容,以及确定客户端和服务器上的哪些数据对象能够交换,清晰的体系结构设想显得举足轻重。

AJAX 派上用场

Web 最初用于共享信息的静态页面。短短几年之后,它发展成一种更加动态的媒介。如今,Web 由交互性极强的页面所组成;然而,它仍非常依赖于以整页转换为基础的模式。用户与页面进行的交互越多,必须创建及返回用户浏览器的页面就越频繁。以此方式使用交互式页面所引起的负面结果有很多,例如,减缓页面刷新和闪烁。这是一种不完善的解决方案,经常会导致糟糕的用户体验。AJAX 使得此模式中发生了非常令人渴望的变化,它允许更简洁的 Web 应用程序,并为生成新的应用程序奠定了基础。AJAX 以最终用户为核心。使用 AJAX 功能,Web 应用程序的交互性变得更强,响应更及时,更快速且更友好。交互和响应(操作缓慢时的反馈)都更妥善地得到了处理,便于用户对页面进行更多操作。总之,用户获得了更好的体验。

使用 AJAX,更多代码会在浏览器上执行,这要求将更多脚本指定给客户端页面。但是,这留下了一些大问题有待解决。何种脚本?谁将编写此脚本?此脚本遵循哪些体系结构原则和模式?

在本专栏中,我将从体系结构角度介绍 AJAX,帮助您、开发人员和架构师做出明智选择。同时,我将为设计人员和管理员提供足够的上下文信息,让他们的工作变得更加轻松。这是一个相当大的主题,因此我把它分为两部分来讲。请不要错过下个月的专栏,届时我将继续这一讨论。

AJAX 体系结构

如果您要考虑 AJAX,请看图 1,该图说明了这一步的体系结构含义。传统的 Web 应用程序需要在服务器上执行所有操作,应用程序只是偶尔会发出脚本代码,在客户端上运行任务,如处理数据验证。

图 1传统 Web 模式与 AJAX 模式(单击该图像获得较大视图)

AJAX 应用程序使用负责对 Web 服务器发出调用的客户端框架。AJAX 服务器端框架则负责请求数据馈送并将其返回客户端。这通常是 JavaScript Object Notation (JSON) 数据流,但也可使用其他格式,如 XML、RSS 和 CSV。

客户端接收数据馈送,并使用 JavaScript 更新 UI。该服务器通过返回以指定格式编码的原始数据,对请求做出响应。带宽消耗会降至最低,应用程序速度会提高(因为完成请求所用时间较少),而且 UI 更新也能在无可见回发的情况下生效。但是,在解决众多问题的同时,客户端上操作的增加也带来了新的问题,如新的编码实践、新的安全隐患、可访问性问题等。

时间: 2025-01-02 16:50:59

AJAX应用程序体系结构,第1部分的相关文章

AJAX应用程序体系结构,第2部分

使用 ASP.NET AJAX Extensions 将您的站点过渡到 AJAX 体验时,有两个主要的编程模型可供选择:部分呈现和脚本服务.在上个月的专栏中,我主要从体系结构的角度论述了部分呈现.简而言之,使用部分呈现,您无需更改 ASP.NET 应用程序的底层体系结构--它是实现 AJAX 某些最佳元素(如站点页面的无闪烁更新)的便捷途径.实现此类改进行为只需添加一些新的服务器控件(特别是 ScriptManager 和 UpdatePanel),并让它们悄悄地施展一些技巧,通过 XMLHtt

开发保留标准浏览器功能的AJAX应用程序(3)

ajax|标准|程序|浏览器 使用碎片标识符,我们可以创建一个"Ajax-URI",其中的客户端部分和服务器端部分使用"#"隔开. JavaScript提供了window.location()函数,以便通过URI更新浏览器的历史记录和地址.此外,我们可以使用window.location.hash()直接访问碎片标识符. 在下面的代码片断中,您可以看到如何通过对选择框使用onchange事件处理程序来扩展我们的代码,该处理程序使用一个"Ajax-URI&q

开发保留标准浏览器功能的AJAX应用程序(4)

ajax|标准|程序|浏览器 案例分析:包含后退按钮和深链接的Ajax论坛 Backbase Ajax引擎是一个成熟的.功能丰富的Ajax软件包.对所有传统Web可用功能的支持是Backbase的优点之一. Backbase DevNet包含了为开发人员提供的.与Backbase和Ajax有关的信息.而开发人员论坛是DevNet的一部分. Backbase Web应用程序(包括DevNet及其讨论论坛)是使用Backbase构建的.为了演示该论坛功能丰富和易于到达的特点,我们将逐步遍历论坛的典型

追求代码质量: 对Ajax应用程序进行单元测试

使用 GWT 更轻松地测试异步应用程序 简介: 您可能从编写 Ajax 应用程序中获得了极大乐趣,但是对它们执行单 元测试却着实让人头痛. 在本文中,Andrew Glover 着手解决 Ajax 的弱点( 其中之一),即应对异步 Web 应用程序执行单元测试的固有挑战.幸运的是, 他发现在 Google Web Toolkit 的帮助下,解决这个特殊的代码质量问题要比预 想的容易. Ajax 在近期无疑是 Web 开发界最时髦的字眼之一 -- 与 Ajax 相关的工具.框架.书籍以及 Web

使用异步Servlet扩展AJAX应用程序--多路复用客户端套接字

作为Web应用程序模型的AJAX的出现使服务器端的面貌发生了巨大的变化.用户对着Web页面填写表单并单击提交按钮转到下一个链接的典型Web使用模式现在正在转变为更先进的客户端JavaScript以及功能更丰富的用户界面,只要对表单进行操作,比如单击一个复选框.按下一个键或将鼠标移到一个选项卡上,该用户界面就会不断地与服务器交互. 考虑一下从客户端传输到服务器的数据量有多大.从可用性的角度来看,用户在一个薄客户端浏览器上获得了富用户界面,无需安装任何东西.但是,当在服务器端扩展这些应用程序时就要付

开发保留标准浏览器功能的AJAX应用程序(1)

ajax|标准|程序|浏览器 作者:Mark Schiefelbein出处:bea责任编辑: 方舟 [ 2006-03-15 08:32 ]Ajax应用程序由于其丰富的功能.交互性以及快速的响应能力而得到人们的普遍赞许   Ajax应用程序由于其丰富的功能.交互性以及快速的响应能力而得到人们的普遍赞许.它可以使用XMLHttpRequest对象动态地加载数据,而不是加载新的页面.在它大肆进行宣传以及许多人兴奋的同时,有评论指出,Ajax应用程序丢失了浏览器的一些重要功能,包括对后退前进按钮的支持

ajax代理程序,自动判断字符编码

ajax|编码|程序 由于ajax在跨域的访问上有问题,目前最好的方法是做代理.写了个代理程序和心得 为了做ajax的代理,研究了下服务器端的xmlhttp并和客户端的ajax中的xmlhttp做了个比较,后台代码是asp的 服务器端的xmlhttp也就是asp小偷程序,我把代码改成了javascript. 1.在服务器端的xmlhttp.Open("GET",url,false)异步必须是关闭的,而客户端的异步是打开的,这个很好理解. 2.在服务器端的xmlhttp.Response

GWT开发AJAX应用程序教程

一. 引言 如果你是一个Java软件和Ajax开发者,那么,Google Web Toolkit(GWT)应该已经引起你的关注. Google公司已经于2006年5月在Apache许可协议下发布了这种免费的开发工具包.GWT的设计目的是为了简化用Java语言开发Ajax应用程序.Google初始发行的beta版本可以适用于Windows和Linux平台,并许诺稍后要发行一个Mac OS X版本. 本文将探讨在Mac OS X上使用GWT和熟悉的Java工具,例如Apache Ant,Tomcat

ajax代理程序自动判断字符编码

ajax|编码|程序 由于ajax在跨域的访问上有问题,目前最好的方法是做代理.写了个代理程序和心得. 为了做ajax的代理,研究了下服务器端的xmlhttp并和客户端的ajax中的xmlhttp做了个比较,后台代码是asp的. 服务器端的xmlhttp也就是asp小偷程序,我把代码改成了javascript. 1.在服务器端的xmlhttp.Open("GET",url,false)异步必须是关闭的,而客户端的异步是打开的,这个很好理解.2.在服务器端的xmlhttp.Respons