关于Hash、onHashChange事件

现在的网络应用程序越来越多的使用AJAX异步请求完成页面的无缝刷新,导致浏览器的URL不会发生任何变化而完成了请求,从而破换了用户浏览体验。同时本次浏览的页面内容在用户下次使用URL访问时将无法重新呈现而解决该问题的一个途径便是使用window.location.hash属性及窗口的onhashchange事件下面具体介绍几个使用过程中必须理解的要点。:

1,散列值浏览器是不会随请求发送到服务器端的(即地址栏中#及以后的内容)。

2,可以通过window.location.hash属性获取和设置的哈希值。

3,如果注册onhashchange事件,设置散列值会触发事件。可以通过设置window.onhashchange注册事件监听器,也可以在主体元素上设置onhashchange属性注册。

4,window.location.hash值的变化会直接反应到浏览器地址栏(#后面的部分会发生变化)。

5,同时浏览器地址栏散列值的变化也会触发window.location.hash值的变化,从而触发onhashchange事件。

6,当浏览器地址栏中URL包含哈希如http://www.baidu.com/#home,这时按下输入,浏览器发送http://www.baidu.com/请求至服务器,请求完毕之后设置散列值为#home,进而触发onhashchange事件。

7,当只改变浏览器地址栏URL的哈希部分,这时按下回车,浏览器不会发送任何请求至服务器,这时发生的只是设置散列值新修改的哈希值,并触发onhashchange事件。

8,html <a>标签属性href可以设置为页面的元素ID如#top,当点击该链接时页面跳转至该id元素所在区域,同时浏览器自动设置window.location.hash属性,同时地址栏哈希值发生改变,并触发onhashchange事件。

猜你喜欢

转载自blog.csdn.net/yutao_fullstack/article/details/80633831
今日推荐