javascript入门经典学习二(浏览器的前进与后退)
1.DOM不是javascript语言的一部分,而是内置在浏览器中的一个应用程序接口。dom的子元素包括下面几个
window(document,history,location)
1)document子对象 links[]可以获取整个页面的连接(<a href=""></a>)的集合
anchors[]可以获取整个页面所有的锚点(<a name=""></a>) 类似的还有images
2)history对象,history对象有current,previous,next三个属性,用来存储历史列表中的url,但是在浏览器中不能正常访问,history提供了3个方法
go(参数) 产生为整数正数表示前进次数 负数表示后退次数,back(),forward().
补充:为了搞清楚,浏览器为什么能够进行后退和前进,以及一些因前进和后退导致问题的根源,做了一些测试得出如下结论:
a)浏览器自身能够记录访问的历史,此处的访问历史仅仅是一个地址
b)前进后退操作时,浏览器会访问自身记录的url地址
c)在访问历史的url时,如果服务器侧没有强制禁用缓存,那么浏览器将不会想服务器发送请求,否则浏览器将向服务器发送新的http请求。
由此可以解决一些登录后退出 然后后退仍能看到用户信息,以及 由使用ajax的页面在调到新页面后再回退回来导致的一些脚本错误。
方法很简单 就是在服务器测禁用缓存(no cache,no store),从而回退时 服务器会受到请求便可以做出相应的处理。 (如有不妥之处 请大家多多指教 给我留言)
3)location对象,这个对象中包含了很多窗口的当前url网址的信息,最重要的是修改href属性可以重新定位到新的页面。,其他的一些protocol,port,等,
其中:search表示查询部分 指?之后的参数 如aid=3; hash:表示anchor名称 如#anchor 这两个应该比较实用
location的方法reload(bool),就是刷新,如果参数为true 则无论缓存与否都会强制刷新
replace(url),其实这个还是比较实用,不仅能够实现设置location的功能,而且还不影响历史记录。(这个就比较不错了 如a页面到b,b页面用这个replace(c)打开了c,这是点击后退会发现到了a)-