hash模式和history模式 原理和区别

hash history
hash值变化浏览器不会重新发起请求,但是会触发window.hashChange事件 history模式基于window.history对象的方法
history.forward();/back()/go(n)/pushState()/replaceState()/state/onpopstate()
hash设置的新值必须与原来不一样才会触发记录添加到栈中 pushState设置的新URL可以与当前URL一模一样,这样也会把记录添加到栈中
hash只可添加短字符串 pushState通过stateObject可以添加任意类型的数据到记录中
兼容 IE8以上 IE10以上
hash只可修改#后面的部分,故只可设置与当前同文档的URL pushState设置的新URL可以是与当前URL同源的任意URL
posted @ 2022-04-28 11:15  bcj7wi3kd5h1wd6  阅读(104)  评论(0编辑  收藏  举报