开发保留标准浏览器功能的AJAX应用程序
http://tech.ddvip.com 2006年11月20日 社区交流
本文详细介绍开发保留标准浏览器功能的AJAX应用程序
Ajax应用程序与传统的Web应用程序之间的主要区别在,Ajax应用程序可以处理用户的交互而无需页面重新加载。例如,通过XMLHttpRequest对象从服务器载入数据,或者使用JavaScript来处理拖放客户端。
在上面的两个例子中,状态改变了,但是却没有生成新的URI。因此,单击后退按钮或刷新按钮会产生意外的结果,在地址栏中也不会有深链接的URI。
为了提供传统的Web可用功能,Ajax应用程序需要以类似于服务器处理传统的Web应用程序的方式来处理URI客户端。Ajax应用程序需要实现以下功能:
当客户端状态发生改变时,生成一个URI,并将其发送到浏览器 当浏览器请求新的URI时可以重新创建状态。实现以上功能后,浏览器的历史记录就可以正常工作,浏览器的地址栏就可以显示URI,当然,您也就可以将它发送给朋友了。
这里还有另外一个难点,那就是如何确定Ajax引擎什么时候需要实现以上功能(例如,哪一次状态改变需要创建新的URI)。在传统的模式中,每一次页面刷新都对应着一次URI更新。而在Ajax模式中,每一个客户端事件都将新的URI添加到浏览器堆栈中。交互设计者和开发人员将不得不做出决定:哪一次状态改变是有意义的。只对有意义的状态改变才需要生成URI。
下面我们对提供Web可用功能的Ajax应用程序在客户端需要实现的功能做一下总结:
创建历史记录 保存有意义的状态 生成相应的URI 将这个URI添加到浏览器的堆栈中 恢复历史记录 检测URI的改变 通过URI重新创建状态 在Ajax中支持后退按钮的基本设计思想在这一节中,我们将讨论在Ajax应用程序中支持后退按钮所需的基本步骤,并给出说明所需步骤的简单示例代码。有关如何以跨浏览器兼容的方式实现后退按钮支持的更完整讨论可以参见Mike Stenhouse在Content with Style以及Brad Neuberg在OnJava发表的文章。这两篇文章也是我比较喜欢的。
来源:bea.com.cn 作者:Mark Schiefelbein 责编:豆豆技术应用