window.addEventListener('pageshow', (event) => {
if (event.persisted || (window.performance && window.performance.navigation.type === 2)) {
this.init()
}
}, false)
当第一次触发pageshow时,persisted的值一定是false,所以返回时是第二次触发所以就是true了
在chrome中输入performance.navigation:
performance.navigation
这个对象有两个属性:
performance.navigation.type(该属性返回一个整数值,表示网页的加载来源,可能有以下4种情况):
0:网页通过点击链接、地址栏输入、表单提交、脚本操作等方式加载,相当于常数performance.navigation.TYPE_NAVIGATE。
1:网页通过“重新加载”按钮或者location.reload()方法加载,相当于常数performance.navigation.TYPE_RELOAD。
2:网页通过“前进”或“后退”按钮加载,相当于常数performance.navigation.TYPE_BACK_FORWARD。
255:任何其他来源的加载,相当于常数performance.navigation.TYPE_RESERVED。