为什么同样是改变url,<a href='/path'/>
和window.pushState(null, null, '/path')
,在浏览器中表现不同,a标签导致url改变并刷新页面,pushState只是单纯的改变url,浏览器的运行机制和url有什么关联?为什么同样的url却有不同的行为?浏览器是如何识别这种不同的?
为什么同样是改变url,<a href='/path'/>
和window.pushState(null, null, '/path')
,在浏览器中表现不同,a标签导致url改变并刷新页面,pushState只是单纯的改变url,浏览器的运行机制和url有什么关联?为什么同样的url却有不同的行为?浏览器是如何识别这种不同的?
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答942 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
https://developer.mozilla.org...
pushState 只是改变浏览器浏览历史的记录(与url框的显示),但并不会导航至任何页面。
浏览器的 url 框的显示也可以手工修改,这要不敲回车,浏览器一样不会导航。
浏览器导航到一个新页面时(比如点击a标签),会引起url显示的变化,而不是url框的变化引起了页面导航