HTML5 API中历史如何实现无刷新跳转

  介绍

这篇文章将为大家详细讲解有关HTML5 API中历史如何实现无刷新跳转,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

有一次在上* *网的时候,发现登陆,注册动画效果非常华丽,但让我感到震惊的是页面竟能够实现无刷新跳转(已改版,观看此效果可以猛击此处:GitHub或阅FM),回顾了所学的前端知识,似乎没有任何技术可以实现这一点,于是百度了一下,才发现这原来是使用HTML5 API中历史实现的效果,但奈何一直未曾派上用场。直到博客改版时,才将这一技术应用起来。
<强>
1。新增了通过JS在浏览器历史记录中添加项目的功能。
2。在不刷新页面的前提下显示改变浏览器地址栏中的URL。
3。添加了当用户单击浏览器的后退按钮时触发的事件。
通过以上三点,可以实现在不刷新页面的前提下动态改变浏览器地址栏中的URL,动态显示页面内容。
比如:当页面和一页B面内容不一样的时候,在HTML5之前,如果从页面一个切换到页面B时,需要在浏览器下从页面一个切换到页B面,或者说,如果需要有后退按钮功能的话,可以在URL地址加# XXXX可以实现后退功能。那么现在在HTML5中,可以通过历史API实现如下处理即可:
1。在一个页面通过发AJAX请求请求页面中B的数据。
2。在页面一个中通过JS装载相应的信息到相应的位置来。
3。通过历史API在不刷新页面的情况下在浏览器的地址栏中从页的URL面地址切换到页面B的URL地址。
<强>
<强>属性
1。长度历史的项数.javascript所能管到的历史被限制在用浏览器的“前”进“后退”键可以去到的范围。本属性返回的是“前进”和“后”退两个按键之下包含的地址数的和。
<强>方法
1.()后回来退,跟按下“后退”键是等效的。
2.()前向前进,跟按下“前进”键是等效的。
3.()用法:history.go (x);在历史的范围内去到指定的一个地址。如果x & lt;0,则后退x个地址,如果x比;0,则前进x个地址,如果x==0,则刷新现在打开的网页.history.go(0)跟location.reload()是等效的。

1。历史。pushState(数据、标题[url]):往历史记录堆栈顶部添加一条记录;数据会在onpopstate事件触发时作为参数传递过去,标题为页面标题,当前所有浏览器都会忽略此参数;url为页面地址,可选,缺省为当前页地址。
2。历史。replaceState(数据、标题[url]):更改当前的历史记录,参数同上。
3。历史。状态:用于存储以上方法的数据数据,不同浏览器的读写权限不一样。
4。popstate事件:当用户单击浏览器的后退或者前进按钮时触发该事件。在事件处理函数中读取触发事件的事件对象的州属性值,该属性值即为执行pushState方法时所使用的第一个参数值,其中保存了在向浏览器历史记录中添加记录同步保存的对象。
到目前为止,IE10, firefox4以上的版本,Chrome8以上的版本,Safari5, Opera11以上的版本浏览器支持HTML5中API的历史。
<强> HTML:

代码如下:

& lt; ! DOCTYPE  HTML>,   & lt; html>,   & lt; head>,   & lt; title>, New  Document  & lt;/title>,   & lt; style>,   ul,李{list-style:没有;},   .container{宽度:px;边界:px  solid  # ccc;溢出:隐藏;},   .container  ul{浮动:左;宽度:px;},   李.container {宽度:px;高度:px;行高:px;溢出:隐藏;},   .container  li {文字修饰:没有;},   .container  li.current {颜色:红色;},   .all-content{宽度:px;浮动:左;溢出:隐藏;},   时间/style> & lt;   & lt; script  src=https://www.yisu.com/zixun/" jquery -…min.js ">