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