本篇文章提供了一个开源JavaScript库,它提供了给AJAX使用程序中添加书签和会退按钮的功能。在学习完这个教程 后,开发者将能够对开发AJAX使用碰到的疑问取得一个处理方案,这个特性 甚至Google Maps 和 Gmail 现在都不提供:提供一个强悍的,可用的书签和前进回退按钮,如同其他的WEB使用一样的行为。
AJAX“如何 处理书签和回退按钮”阐述了AJAX使用程序开发书签和回退按钮功能碰到的严重的疑问;能够处理以上疑问的一个开源框架,并提供真实、基本的历史记载库,还提供了多个运行中的例子。
本文把这个框架提供的主要发觉分两个部分来表明:最先,一个潜藏的HTML表单用来缓存大量短暂的在客户端信息。这些缓存为网页导航提供了强悍的支持。其次,一个潜藏的IFrame和超级链接用来截取和记载阅读器的历史事件提供回退按钮和向前按钮的支持。以上两个技能都是议决包装在一个基本的JavaScript库中来实现基本开发。
疑问:书签和回退按钮在传统的多页面的Web使用程序中工作的特别好。当用户阅读站点的时刻,阅读器的地址栏记载随新的URLs更新,这些记载能够拷贝到email 或者 书签中供以后运用。回退和前进按钮能够帮助用户在他阅读过的网页中向前或向后翻动。
AJAX 使用程序却是不一样的,他们是运行在一个网页中的庞杂程序。阅读器并不是为这类程序打造的———这类程序是过去的,在每次鼠标点击的时刻须要重新刷新整个页面。
在类似Gmail的AJAX软件中,阅读器的地址栏在用户挑选功能和改动程序状态的时刻保持不变,这让书签在这类程序中无法 运用。未来,假如用户按下“回退”按钮来撤销上次的动作,而阅读器和使用程序分离的状况会让用户很吃惊。
处理方案:开源Really Simply History (RSH)框架能够用来处理上面的疑问,为AJAX使用程序提供书签和控制“回退”、“向前”按钮的功能。RSH 当前仍旧 Beta 状态,能够在Firefox 1.0 , Netscape 7+,Internet Exp lorer 6+等阅读器上工作,当前还不支持Safari阅读器。能够参考:编码天堂:Safari:不可能的DHTML历史记载。
有几类AJAX框架当前也支持书签和历史访问的疑问,但这些框架因为实现方式的不一样,当前都有多个大Bug。未来,许多 AJAX框架,比如Backbase 和 Dojo 将会整合历史阅读的功能;这些框架为AJAX使用程序采用完全不一样的编程模型,强迫程序员运用完全不一样的方式来实现历史阅读的功能。
相反,RSH 是一个能够包含在现有AJAX系统的单模块。未来,RSH库会进一步改良防止和其他框架的相关 功能冲突。
RSH 历史框架由两个JavaScript类组成:DhtmlHistory 和 HistoryStorage。
DhtmlHistory 类为AJAX使用程序提供历史阅读记载的抽象。AJAX 页面 add() 历史阅读记载事件到阅读器,保存指定新的地址和相关 的历史数据。DhtmlHistory 类运用 Hash连接更新阅读器当前的URL,比如:#new-location,同时把历史数据和新的URL关联。AJAX 使用程序把自身注册为历史阅读的监听器,当用户运用 “前进”“回退”按钮来阅读时,历史阅读时间被触发,调用 add() 要领来提供给阅读器新的地址,并保存历史数据。