对于页面来说,dom结构,样式,脚本也属于内容,页面内的图片文字视频音频也是内容。
那么我们常用的 window.onload和 jquery 中的 ready 函数就能判断内容是否全部加载完成吗?答案是否定的。以上两个只能判定页面骨架加载完成了,但是不能判定页面资源是否加载完成,比如页面的超大图片,视频等。还有如果是有异步请求的资源等都无法检测到的,尤其是在 onload 之后发生的请求。
onreadystatechange回调不行,原因:每当有请求发生时 readyState 都会改变并触发 onreadystatechange
如果需要动态处理 dom 那么在 onload|ready 中就可以了,因为此时页面 dom 已经加载完成了。如果你需要对某些异步的请求做监控,则只需要在对应的异步中添加上回调即可。
1 | if(document.readyState == “complete”) //当页面加载状态 |