DOMContentLoaded
浏览器已完全加载 HTML,并构建了 DOM 树。但像 <img>
和 样式表 之类的外部资源可能尚未加载完成
load
不仅加载完成了 HTML,还加载完成了所有外部资源
beforeunload
用户正准备离开页面,由于不一定会触发,所以该事件不可靠
unload
页面正在被卸载时触发
由于 BFCache 的工作原理,当页面被缓存时,unload 事件可能不会被触发,所以该事件不可靠(几乎不使用)
表示用户会话结束的事件:
- 最佳事件是
visibilitychange
事件 - 不支持 visibilitychange 的浏览器中,
pagehide
事件是次佳的替代方案(有可能不生效) - 如果只是想要检测页面卸载事件,
pagehide
事件是最佳选项
发送分析数据
在页面关闭时发送数据,在 visibilitychange 中使用 navigator.sendBeacon(url, data)