loading...
您现在的位置: 北极星首页 > 技术文章 > 常用资料 > 电力信息化 > 用AJAX来控制书签和回退按钮[1]

用AJAX来控制书签和回退按钮[1]

来源:希赛网 作者:佚名 发布日期:2008-8-4 18:57:58
关键词:  SOA 控制 AJAX

  关键词:ajax;bookmarks;backbutton

  这篇文章描述了一个支持AJAX应用书签和回退按钮的开源的javascript库。在这个指南的最后,开发者将会得出一个甚至不是GoogleMaps或者Gmail那样处理的AJAX的解决方案:健壮的,可用的书签和向前向后的动作能够象其他的web页面一样正确的工作。

  AJAX:怎样去控制书签和回退按钮这篇文章说明了一个重要的成果,AJAX应用目前面对着书签和回退按钮的应用,描述了非常简单的历史库(ReallySimpleHistory),一个开源的解决这类问题的框架,并提供了一些能够运行的例子。

  这篇文章描述的主要问题是双重的,一是一个隐藏的html表单被用作一个大而短生命周期的客户端信息的session缓存,这个缓存对在这个页面上前进回退是强壮的。二是一个锚连接和隐藏的iframes的组合用来截取和记录浏览器的历史事件,来实现前进和回退的按钮。这两个技术都被用一个简单的javascript库来封装,以利于开发者的使用。

  存在的问题

  书签和回退按钮在传统的多页面的web应用上能顺利的运行。当用户在网站上冲浪时,他们的浏览器地址栏能更新URL,这些URL可以被粘贴到的email或者添加到书签以备以后的使用。回退和前进按钮也可以正常运行,这可以使用户在他们访问的页面间移动。

  AJAX应用是与众不同的,然而,他也是在单一web页面上成熟的程序。浏览器不是为AJAX而做的—AJAX他捕获过去的事件,当web应用在每个鼠标点击时刷新页面。

  在象Gmail那样的AJAX软件里,浏览器的地址栏正确的停留就象用户在选择和改变应用的状态时,这使得作书签到特定的应用视图里变得不可能。此外,如果用户按下了他们的回退按钮去返回上一个操作,他们会惊奇的发现浏览器将完全离开原来他所在的应用的web页面。

  解决方案

  开源的ReallySimplyHistory(RSH)框架解决了这些问题,他带来了AJAX应用的作书签和控制前进后退按钮的功能。RSH目前还是beta版,在Firefox1.0上,Netscape7及以上,和IE6及以上运行。Safari现在还不支持(要得到更详细的说明,请看我的weblog中的文章CodinginParadise:Safari:NoDHTMLHistoryPossible).

  目前存在的几个AJAX框架可以帮助我们做书签和发布历史,然而所有的框架都因为他们的实现而被几个重要的bug困扰(请看CodinginParadise:AJAXHistoryLibraries得知详情)。此外,许多AJAX历史框架集成绑定到较大的库上,比如Backbase和Dojo,这些框架提供了与传统AJAX应用不同的编程模型,强迫开发者去采用一整套全新的方式去获得浏览器的历史相关的功能。

  相应的,RSH是一个简单的模型,能被包含在已经存在的AJAX系统中。而且,ReallySimpleHistory库使用了一些技巧去避免影响到其他历史框架的bug.

  ReallySimpleHistory框架由2个javascript类库组成,分别叫DhtmlHistory和HistoryStorage.

  DhtmlHistory类提供了一个对AJAX应用提取历史的功能。.AJAX页面add()历史事件到浏览器里,指定新的地址和关联历史数据。DhtmlHistory类用一个锚的hash表更新浏览器现在的URL,比如#new-location,然后用这个新的URL关联历史数据。AJAX应用注册他们自己到历史监听器里,然后当用户用前进和后退按钮导航的时候,历史事件被激发,提供给浏览器新的地址和调用add()持续保留数据。

  第二个类HistoryStorage,允许开发者存储任意大小的历史数据。一般的页面,当一个用户导航到一个新的网站,浏览器会卸载和清除所有这个页面的应用和javascript状态信息。如果用户用回退按钮返回过来了,所有的数据已经丢失了。HistoryStorage类解决了这个问题,他有一个api包含简单的hashtable方法比如put(),get(),hasKey()。这些方法允许开发者在离开web页面时存储任意大小的数据,当用户点了回退按钮返回时,数据可以通过HistoryStorage类被访问。我们通过一个隐藏的表单域(ahiddenformfield),利用浏览器即使在用户离开web页面也会自动保存表单域值的这个特性,完成这个功能。
[1][2][3][4][5]


『发表/查看该文章的网友评论』


『北极星新闻网邀请您关注2009年全国各电厂最新招聘动向,请点击此链接———北极星电力英才网』

《用AJAX来控制书签和回退按钮[1]》的相关文章

  • ·[典型应用][燃料技术]燃烧控制系统 一 (2008-11-07,阅103次,作者:佚名)
  • ·[常用资料][电力信息化]热工自动控制论述题 (2008-11-07,阅33次,作者:佚名)
  • ·[专业论文][电力节能环保]河北黄骅电厂粉尘污染控制对策 (2008-11-06,阅22次,作者:佚名)
  • ·[常用资料][热能动力]SG-1025/17.4-M850控制循环锅炉 (2008-11-04,阅32次)
  • ·[常用资料][电力建设]扭矩控制的概念 (2008-09-24,阅32次)
  • ·[常用资料][电力信息化]使用Ajax操纵LotusNotes文档 (2008-08-06,阅11次,作者:JoachimDagerot)
  • ·[常用资料][电力信息化]如何正确拆除在ServeRAID适配器控 (2008-08-05,阅22次)
  • ·[常用资料][电力信息化]如何控制数据中心湿度 (2008-08-05,阅9次,作者:佚名)
  • ·[常用资料][电力信息化]西门子将SOA添加到电话应用程序 (2008-08-04,阅27次,作者:佚名)
  • ·[常用资料][电力信息化]Monster迎接SOA带来的新挑战 (2008-08-04,阅8次,作者:佚名)
  • ·[常用资料][电力信息化]同方ezONE平台走实用化SOA路线 (2008-08-04,阅6次,作者:佚名)
  • ·[常用资料][电力信息化]SOA应用谨慎乐观 (2008-08-04,阅12次,作者:佚名)
  • ·[常用资料][电力信息化]中国SOA应用调查 (2008-08-04,阅31次,作者:佚名)
  • ·[常用资料][电力信息化]SOA使用中的五大隐患 (2008-08-04,阅29次,作者:佚名)
  • ·[常用资料][电力信息化]Oracle在JavaOne大会上勾勒SOA2. (2008-08-04,阅21次,作者:佚名)
  • ·[常用资料][电力信息化]Eclipse在SOA中崭露王者气息 (2008-08-04,阅14次,作者:佚名)
  • ·[常用资料][电力信息化]解读SOA和传统IT管理之间的必要联 (2008-08-04,阅21次,作者:佚名)
  • ·[常用资料][电力信息化]HP:SOA存储库日渐成熟 (2008-08-04,阅8次,作者:佚名)
  • ·[常用资料][电力信息化]IBM:实施SOA五个切入点助企业扫除 (2008-08-04,阅10次,作者:佚名)
  • ·[常用资料][电力信息化]全面破解中小企业的整合问题-SOA (2008-08-04,阅16次,作者:佚名)
  • 电力信息化帖

    论坛技术贴精华