load和pageshow事件的区别
下面三种情况会刷新页面且都会触发load事件:
- 点击a标签
- F5刷新或点击属性按钮(强制刷新)
- 前进后退按钮
但是,在火狐浏览器中,有一个“往返缓存”,这个缓存中不仅保存着页面数据,还保存了DOM和Js的状态,也就是将整个页面都保存在内存中,此时后退是不能刷新页面。
pageshow就可以解决这个问题,pageshow是在页面显示时触发,无论页面是否来自缓存。在重新加载的页面中,pageshow会在load事件触发后触发。根据事件对象的persisted可以来判断是否是缓存中的页面触发的pageshow事件,pageshow事件是给window添加的。