打造可靠的Ajax应用程序: 第1部分:构建前端

简介:如今,Ajax 仍然是业界的热门字眼,越来越多的应用程序都采用 Ajax 技术构建。然而,构建一个好的 应用程序并不容易。本文将着重讨论如果构建 直 观易用的受 Ajax 驱动的应用程序。

Ajax 并不只是一种技术。大多数开发人员却认为它是,并试图借助诸如 XML 和 JavaScript 这类语言证明其观点。但这种观点非常局限,并且,忽视了付钱 给您的人:客户,不管是咨询代理还是您的老板(只有您建立了令人满意的用户 群,他们才能获得收入)。

客户并不关心技术;他们关心的是应用程序的外在表现如何,以及当他们通 过 鼠标和键盘操作时,应用程序如何响应。您可以将世界上所有的技术都构建到应 用程序中,而此应用程序却不一定能有多成功,您也可以构建一个非常简单的 HTML 应用程序,它却可以工作得很好。因此,我们的目标是要结合技术和可用 性 ,这一点对 Ajax 应用程序而言尤其正确。

Ajax 的承诺

了解 Ajax 所能提供的功能对于开发人员和用户而言都非常重要。不管您是 否 将应用程序定义为 Ajax,人们对 Web 应用程序都有了更高的期望,如果想要让 客户满意,最好了解这些期望。

可用性

首先,Ajax 关乎可用性。有些开发人员可能会奇怪,因为 Ajax 已经给人们 带来了瞬间的响应时间、小部件和可视工具以及各种各样的 GUI 元素。这些绝 对 是 Ajax 体验的一部分,但是大多数用户 — 而非开发人员 — 只是发现 Ajax 应用程序更好用。它们能像用户期望的那样响应,应用程序的元素 — 字段、按 钮和图像 — 均符合用户的期望。

其结果就是应用程序很好使用。用户无需做很多查找,比如查找 zip 代码字 段在哪以及又该如何在地图上做缩放。如果所设计的是 Ajax 应用程序(并且即 使设计的不是这类应用程序),就应该争取达到同等的可用性程度。用户试用和 常识是最好的指导,接下来,我们将讨论一些可用来确保应用程序可用和直观的 简单方法。

响应性

处理完可用性后,就需要处理 Ajax 应用程序的响应性了。初看上去,这似 乎 是有关速度的问题。Ajax 应用程序无需在每次发生事件时都向服务器端程序提 交 并刷新页面,这意味着等待的减少(至少理论上如此)。然而,Ajax 特性的这 一 部分多少有点人为因素。在 DSL 世界,等待并不是很多。您的母亲和祖母可能 用 的是有线 modem,而不是拨号上网,如果您在工作中阅读本文,那么很可能所用 的网络是 T1 或 T3。Ajax 应用程序的速度天生较快,这一点很难理解(如果速 度真的较快,快多少?10 毫秒?100 毫秒?您知道这意味着多么短的时间么? ) 。

然而,Ajax 应用程序应该比传统应用程序有更好的响应性。这不仅仅是指速 度这一个方面,它还涉及到了应用程序给人的感觉如何(而这主要体现在可用性 和界面)。比如,假设您输入自己名字并开始选择您所喜欢的 Crocs 的颜色, 在 您进行其他操作的时候,程序会有很多时间执行其他任务。所以应用程序可能会 获取您的地址、所保存的信用卡信息,可能还有您之前在访问这家网上商店时已 经标示为朋友的那些人。所有这些信息可能会花费很多时间,但如果您正在忙着 做其他一些事情,并且这些信息已经显示为可用,那么会觉得应用程序响应性 非 常好。

需要一些技巧的是 — 我们将会对此详细加以讨论 — 何时开始制造 这种响 应性。通过以特定的方式在应用程序中排列字段,就会知道用户将要遵循的操作 流程。这样一来,我们就可以编写 Ajax 交互程序以便利用这一流程。请记住这 一点,我们先对其稍做论述,稍后我们再用特定的示例回到这一主题。

独特的类桌面界面

这是最能为人接受而同时又是最难的一个 Ajax 应用程序的特性。我们所说 的 “感觉上” 像桌面应用程序,在很多时候,是指 “看起来” 像桌面应用程序 。 我的公司使用的是 Zimbra 邮件套件,它模仿的是 Microsoft Outlook,我猜想 其中的原因一定是觉得看起来像桌面应用程序就会感觉上也像桌面应用程序。

有关这一问题,有很多不同的见解。有些人认为 Web 的目的就是要成为一种 新的桌面。您将使用的是同样的应用程序 — 或其类似物 —,只不过这些程序 将 都是在线的。初此之外,其余的看起来和感觉上均与之前无异。另一些人(我承 认,我更偏向这一阵营)认为 Web 是一种独特的空间,有些地方好于桌面应用 程 序,有些地方则更差。Web 是其自身的媒介,Web 上的应用程序应该单独设计, 而不能只简单克隆桌面应用程序。

不管何种情况,有一点很清楚,即 Ajax 应用程序能够看起来比 1997 年的 HTML 表单要好很多,那时的表单只有大的灰色的 Submit Form 按钮和沉闷的 “ border=1” 装饰。所以 Ajax 范型需要更加丰富的体验,即使很多人在如何实 现 的问题上意见不尽相同。

时间: 2024-09-17 09:53:14

打造可靠的Ajax应用程序: 第1部分:构建前端的相关文章

打造可靠的Ajax应用程序,第2部分: 构建Ajax后端

简介:后端处理 - 服务器端脚本和程序 - 并不总能一投入到 Ajax 应用 程 序中就很好地运转.相反,若能仔细地提前规划以确保数据以恰当及有效的格式 发送,反而能让整个应用程序更内聚,并能减少不必要的复杂性.在本文中, Brett McLaughlin 展示了一个好的服务器端脚本如何能补足 Ajax 行为. 在本系列的 第 1 部分,我们在 Nathan Smith 的 Hoverbox 代码(到初始 Hoverbox 代码的相关链接可以在 参考资料 部分找到)的基础上构建了一个视 觉 上异

打造可靠的、不会轻易被别人蒙对的超强密码

心脏出血漏洞现身 7个技巧创造超强密码避开影响BI中文站 4月10日 报道本周早些时候,一个名为"心脏出血"(Heartbleed)的大型安全漏洞浮出水面.该漏洞可让入侵者诱使服务器泄漏你的个人数据."心脏出血" 漏洞的危险性在于,它要比一般应用程序中的漏洞潜伏得更深,因为后者可以通过升级应用程序轻易地解决.从Gmail和Facebook等网站传送安全信息的服务,均有可能会受到"心脏出血" 漏洞的影响."心脏出血" 漏洞影响到

开发保留标准浏览器功能的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