Location 对象的reload()方法容易与浏览器工具栏中的Reload/Refresh(重载/刷新)按钮发生混淆,但前者比后者可实现的重载方式要灵活得多。
总体来讲,reload()方法可实现的重载方式主要有三种:
强制从服务器重载:每次刷新页面时,浏览器都默认请求Web 服务器返回当前URL对应的页面给客户端,此法使用true 作为参数;
启动会话时从服务器重载:如果Web 服务器上的文档较之缓冲区内存放的文档新,或者缓冲区内根本没有这个文档,则从Web 服务器重载当前URL 对应的页面;
强制从缓冲区重载:每次刷新页面时,浏览器都默认请求浏览器从缓冲区载入当前URL 对应的页面。
如果缓冲区没有此页面,则从Web 服务器重载。
前面已经讲述过,使用History 对象的go(0)方法也可实现页面的重载。
从本质上讲,主要体现了两种不同性质的重载。
history.go(0)方法重载页面时,在缓冲区取得文档,并保持页面中许多对象的状态,仅改变其全局变量值及一些可设置但不可见的属性(如hidden 输入对象的值等),该方法与浏览器工具栏内的Reload/Refresh(重载/刷新)按钮功能相同。
location.reload(URL)方法重载页面时,不管是从Web 服务器还是从缓冲区重载,目标页面内的所有对象都自动更新。
考察如下实现页面不同重载方式的代码:[code]
Sample Page!学籍注册程序
姓名 :
性别 : Male Female
年级 : Class 1 Class 2 Class 3 Class 4
[/code]
单击“使用 history.go(0)方法重载”按钮后,页面刷新但表单内容不变;
单击“使用location.reload()方法重载”按钮后,页面刷新且表单内容发生变化。
Location 对象在搜索引擎和页面的重定位、重载等方面应用比较广泛,实际使用过程中应综合使用字符串处理的有关方法如substring()、escape()和unescape()等方法分析目标URL地址以得到有用的信息。