枫林在线论坛精华区>>技术交流
[382557] 主题: Ajax铺设了更好的开发Web应用的道路(6)
作者: little (渺小)
标题: Ajax铺设了更好的开发Web应用的道路(6)[转载]
来自: 192.168.*.*
发贴时间: 2005年12月17日 11:17:27
长度: 3110字
http://searchwebservices.techtarget.com.cn/tips/212/2179212_5.sh
tml 

Ajax铺设了更好的开发Web应用的道路

【2005-11-03 11:17】【】【赛迪网】

  使用Ajax的挑战

  与任何技术一样,使用Ajax在相当多的方面都可能范错误。我在这儿
讨论的问题目
前都缺少解决方案,并将会随着Ajax的成熟而解决或提高。随着开发Ajax
应用经验的不
断获取,开发者社区中将会出现最好的实践经验与指导方针。

  XMLHttpRequest的有效性

  Ajax开发者面对的一个最大问题是当XMLHttpRequest不可用时如何反
应。虽然大部
分现代浏览器支持XMLHttpRequest,但还是有少量的用户,他们的浏览器
不能支持,或
由于浏览器安全设置而阻止对XMLHttpRequest的使用。

  若你的Web应用发布于公司内部的Intranet上,你很可能可以指定支持
哪种浏览器,
并可以确保XMLHttpRequest是可用的。若你在公共WEB上发布,则你必须意
识到由于假定
XMLHttpRequest是可用的,所有就阻止了老浏览器、手持设备浏览器等等
用户来使用你
的系统。

  然而,你应该尽力保证应用系统“正常降级”使用,在系统中保留适
用于不支持XML
HttpRequest的浏览器的功能。在购物车例子中,最好的方法是有一个Add
 to Cart按钮
,可以进行常规的提交处理,并刷新页面来反映购物车状态的变化。

  Ajax行卫可以在页面被载入时通过JavaScript添加到页面中,只在XM
LHttpRequest
可用的情况下,为每个Add to Cart按钮加上JavaScript处理函数。另一个
方法是在用户
登录时检测XMLHttpRequest,再决定是提供Ajax版本还是常规基于form提
交的版本。

  可用性考虑

  围绕着Ajax应用的大部分问题都是很普通的问题。例如,让用户知道
他们的输入已
经被注册并处理,是很重要的,因为在XMLHttpRequest处理过程中并不能
提供通常的漏
斗旋转光标。一种方法是将“确认”按扭上的文本替换为“正在更新中…
”,以避免用
户在等待响应时多次点击按钮。

  另一个问题是,用户可能没有注意到他们正在观看的页面已经被更新
。可以通过使
用各种视觉技巧来将用户的眼光吸引到页面的更新区域。还有一个问题是
通过Ajax更新
页面打断了浏览器“退回前页”按钮的正常工作,地址栏中的URL不能反映
页面的全部状
态,并且不能使用书签功能。参见Resource章节中列出的网站地址上的文
章来了解更多A
jax应用关于可用性方面的问题。

  服务器负载

  使用Ajax界面代替传统的基于form的界面可能戏剧性地增加传递到服
务器的请求数
量。例如,一个普通的Google搜索给服务器造成一次命中,并在用户确认
搜索表单时发
生。然而,Google Suggest,将会试图自动完成你的搜索词,在用户打字
时将会往服务
器发送多个请求。

  在开发一个Ajax应用时,要注意到你将会发送多少请求到用户器端,
以及服务器的
负载指标。你可以通过在客户端适当地缓存请求、与服务器响应来缓减负
载压力。你也
应该在设计Ajax应用时尽量在客户端处理更多的逻辑,而不用与服务器端
通讯。

  处理异步

  一定要记住,没有任何东西可以保证XMLHttpRequest将会按照它们被
发送的顺序来
依次结束。实际上,你在设计系统时,脑子里应该始终假定它们不会按原
来顺序结束。
在购物车例子中,使用了一个最后更新的时间戳来保证最新的数据不会被
改写。

  这个非常基本的方法可以在购物车场景中工作,但可能不能在其它情
况下工作。在
设计时刻就要考虑你该如何处理异步服务器响应。

  结论

  你现在应该对于Ajax的基本原则有了一个良好的了解,另外,你应该
理解一些更高
级的随Ajax方法而来的设计问题。创建一个成功的Ajax应用需要一系列的
方法—从JavaS
cript UI设计到服务器端架构—但是你现在应该已经具备了需要使用到的
Ajax核心知识


========== * * * * * ==========
返回