开发保留标准浏览器功能的AJAX应用程序(2)

80酷酷网    80kuku.com

  ajax|标准|程序|浏览器在Ajax中支持后退按钮的基本设计思想

  在这一节中,我们将讨论在Ajax应用程序中支持后退按钮所需的基本步骤,并给出说明所需步骤的简单示例代码。

  简单示例程序如图1所示,在界面中将有一个选择框,它有两个值:“Year 1”和“Year 2”。对于这个程序,我们将在选择框值发生改变时跟踪历史记录。这意味着用户可以首先选择“Year 2”然后单击后退按钮后退到先前的选择。

带有选择框的简单示例程序
图1.带有选择框的简单示例程序

  示例程序最初是一个带有JavaScript getter和setter(用于选择框值)的简单HTML表单:

<html> <head> <script language="JavaScript" type="text/JavaScript"> function reportOptionValue() {   var myForm = document.make_history;   var mySelect = myForm.change_year;   return mySelect.options[mySelect.selectedIndex].value; } function setOptionValue(value) {   var myForm = document.make_history;   var mySelect = myForm.change_year;   mySelect.options[value-1].selected = true; } </script> </head> <body> <form name=make_history>   <select name=change_year>     <option value="year_1">Year 1</option>     <option value="year_2">Year 2</option>   </select> </form> </body> </html> 

  我们将首先实现第一个要求:创建状态的历史记录。正如我们前面所提到的,这个要求包含以下三个步骤:
  • 创建历史记录
    • 保存有意义的状态
    • 生成相应的URI
    • 将这个URI添加到浏览器的堆栈中
  我们希望能够保存选择框的每一次更改。因此我们将创建新的包含选择框状态信息的URI。

  为了遵循Internet标准,我们将使用URI的碎片标识符部分。按照IETF RFC 3986的规定,“……作为客户端间接引用的主要形式,碎片标识符在信息检索系统中起着特殊的作用,〈……〉碎片标识符在解除引用之前与URI的其余部分是分离的,因此,碎片本身中的标识信息只被用户代理所废弃,而不考虑URI方案……”。


分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: