为什么浏览器url变了 却没有刷新页面

为什么同样是改变url,<a href='/path'/>window.pushState(null, null, '/path'),在浏览器中表现不同,a标签导致url改变并刷新页面,pushState只是单纯的改变url,浏览器的运行机制和url有什么关联?为什么同样的url却有不同的行为?浏览器是如何识别这种不同的?

阅读 4.6k
2 个回答

https://developer.mozilla.org...

pushState 只是改变浏览器浏览历史的记录(与url框的显示),但并不会导航至任何页面。

浏览器的 url 框的显示也可以手工修改,这要不敲回车,浏览器一样不会导航。

浏览器导航到一个新页面时(比如点击a标签),会引起url显示的变化,而不是url框的变化引起了页面导航

vue-router的基本原理,也就是h5新增的特性,可以参考文章pushstate了解一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题