`

利用HTML5 History API实现无刷新跳转

 
阅读更多

HTML4中的History API

history这个东西大家应该都不陌生,我们经常使用history.back(-1)来实现后退功能,具体的属性和方法如下:

属性

 
  1. length 历史的项数。JavaScript 所能管到的历史被限制在用浏览器的“前进”“后退”键可以去到的范围。本属性返回的是“前进”和“后退”两个按键之下包含的地址数的和。

 

方法

 
  1. back() 后退,跟按下“后退”键是等效的。
  2. forward() 前进,跟按下“前进”键是等效的。
  3. go() 用法:history.go(x);在历史的范围内去到指定的一个地址。如果 x < 0,则后退 x 个地址,如果 x > 0,则前进 x 个地址,如果 x == 0,则刷新现在打开的网页。history.go(0) 跟 location.reload() 是等效的。
 

HTML5中的History API

 
  1. history.pushState(data, title [, url]):往历史记录堆栈顶部添加一条记录;data会在onpopstate事件触发时作为参数传递过去;title为页面标题,当前所有浏览器都会忽略此参数;url为页面地址,可选,缺省为当前页地址。
  2. history.replaceState(data, title [, url]) :更改当前的历史记录,参数同上。
  3. history.state:用于存储以上方法的data数据,不同浏览器的读写权限不一样

   检测浏览器是否支持History API的代码:

 

  1. function supports_history_api(){
  2.         return !!(window.history && history.pushState);
  3. }                                                                

简单地利用history.pushState,虽然可以实现无刷新地址跳转,但并没有解决在浏览器中前进后退,内容并没有相应改变这个问题,此时就需要用到window.onpopstate事件了,当页面地址发生改变时,便会触发window对象的onpopstate事件,而我们只要在pushState的同时将当前页面的参数传递给浏览器,并在onpopstate事件中作出相应改变可以了

 

分享到:
评论

相关推荐

    HTML5 History API 实现无刷新跳转

    HTML5的History API是现代Web开发中一个重要的进步,它允许开发者在不刷新整个页面的情况下改变浏览器的URL,实现无刷新跳转,从而提供更好的用户体验。这个API主要由`pushState`、`replaceState`、`popstate`事件...

    前端项目-html5-history-api.zip

    HTML5的History API是现代前端开发中的一个重要特性,它极大地改进了浏览器的历史管理,使得开发者...通过学习和实践这些内容,开发者可以更好地掌握前端路由和页面无刷新跳转的技术,这对于构建现代Web应用至关重要。

    深入探究HTML5的History API

    HTML5的History API是Web开发中的一个重要特性,它极大地扩展了对浏览器历史记录的控制,使得开发者能够在不刷新页面的情况下改变URL和管理历史记录。在本文中,我们将深入理解History API,尤其是`history.push...

    最新pjax实现无刷新demo演示下载

    Pjax(Push State + Ajax)是一种网页应用技术,旨在提供更快的页面切换体验,通过利用浏览器的History API和Ajax技术,实现页面的无刷新加载。这个"最新pjax实现无刷新demo演示下载"是一个示例项目,展示了如何在...

    浅谈移动端页面无刷新跳转问题的解决方案.docx

    当用户与SPA进行交互时,如点击导航链接,SPA并不会重新加载整个页面,而是通过JavaScript动态地改变页面内容,实现无刷新跳转的效果。 ##### 2.2 实现原理 - **数据请求与更新**:在SPA中,数据请求通常通过AJAX...

    js无刷新改变页面url

    使用 HTML5 的 History API,特别是 pushState 和 replaceState 两个方法,可以实现无刷新改变页面 URL。 History.pushState(state, title, url) 将当前 URL 和 history.state 加入到 history 中,并用新的 state ...

    HTML5精美提交跳转案例

    通过`window.history.pushState()`和`window.history.replaceState()`,可以实现无刷新的页面跳转,这对于创建单页应用(SPA)或优化用户导航体验非常有用。 另外,`&lt;form&gt;`标签的`onsubmit`事件可以绑定JavaScript...

    浏览器history.js

    4. 在状态变化回调函数中,根据`state`对象和`title`来更新页面内容,实现无刷新跳转。 `history.js`还提供了其他高级功能,如支持跨域状态推送、自定义事件和回退堆栈管理等。开发者可以通过查阅文档来了解更多...

    jquery.fastpage-1.0.js

    HTML5是现代Web开发的基础,它的History API和PushState方法是实现无刷新跳转的关键。PushState允许我们修改浏览器的URL和历史记录,而不会触发页面的重新加载。这样,用户可以享受到类似原生应用的体验,同时,后退...

    Vue实现动态路由及登录404页面跳转控制页面刷新空白解决方案.docx

    ### Vue实现动态路由及登录404页面跳转控制页面刷新空白解决方案 #### 开发环境配置 本解决方案基于以下开发环境: - 操作系统:Windows 10 - Vue 版本:2.9.6 - Node.js 版本:10.15.3 - 其他依赖库:`js-cookie`...

    自用jQuery插件,基于html5的history.pushState方法.zip

    2. **平滑导航**:在页面内部切换时,插件可能会使用pushState来改变URL,同时通过AJAX请求加载新内容,实现平滑无刷新的过渡效果。 3. **回退处理**:当用户点击浏览器的后退按钮时,插件会监听popstate事件,恢复...

    使用ajax和history.pushState无刷新改变页面URL示例

    本篇文章介绍的是利用AJAX技术和HTML5中新增的History API中的history.pushState和history.replaceState方法,实现在不刷新页面的情况下改变浏览器的URL地址。下面将详细介绍这些技术的具体用法和应用场景。 ### ...

    pjax (ajax + pushState的封装) 无刷新翻页等.zip

    **Pjax:Ajax与PushState的...综上所述,Pjax是前端开发中一种高效的页面加载技术,结合了Ajax和HTML5 History API的优点,实现了无刷新翻页,提升了用户体验。在实施Pjax时,需注意兼容性、错误处理和SEO优化等问题。

    静态页跳转传值、静态页跳转传值

    - HTML5引入的History API允许我们在不刷新页面的情况下改变浏览器的URL,同时也支持在跳转时传递数据。通过`history.pushState()`或`history.replaceState()`方法,可以修改历史记录状态对象,其中可以包含我们...

    HTML5实现无刷新修改URL的方法

    当使用`pushState()`和`replaceState()`时,配合监听`popstate`事件,可以实现无刷新跳转。当用户点击浏览器的前进/后退按钮或者通过JavaScript触发`popstate`事件时,可以读取`history.state`来获取之前保存的状态...

    基于html5和css3响应式全屏滚动页面切换效果

    此外,HTML5的`History API`可以实现无刷新的页面跳转,保持URL的可书签性和分享性。 至于提供的文件"2015-03-04-html5-page-change",这可能是项目源代码或示例教程,包含实现这种效果的具体代码。通过分析和学习...

    AjaxPager无刷新分页源码

    AjaxPager是一种实现网页无刷新分页的技术,它利用Ajax(Asynchronous JavaScript and XML)技术,使得用户在浏览网页内容时无需加载整个页面,只需更新部分数据即可实现分页效果,提高了用户体验。本资源包含...

    Html5进阶指南代码

    11. **History API**:允许开发者管理浏览历史,实现无刷新的页面跳转,改善了单页应用的体验。 12. **Push State** 和 **Replace State**:这两个方法是History API的一部分,用于改变URL而不实际加载页面,实现了...

Global site tag (gtag.js) - Google Analytics