Rumah  >  Soal Jawab  >  teks badan

javascript - 怎样判断页面内容全部加载?

js判断页面内容全部加载完成 ?

PHP中文网PHP中文网2749 hari yang lalu493

membalas semua(6)saya akan balas

  • 天蓬老师

    天蓬老师2017-04-10 15:43:14

    看怎么来解释 内容 这两个字。

    对于页面来说,dom结构,样式,脚本也属于内容,页面内的图片文字视频音频也是内容。

    那么我们常用的 window.onloadjquery 中的 ready 函数就能判断内容是否全部加载完成吗?答案是否定的。以上两个只能判定页面骨架加载完成了,但是不能判定页面资源是否加载完成,比如页面的超大图片,视频等。还有如果是有异步请求的资源等都无法检测到的,尤其是在 onload 之后发生的请求。

    那么1楼上说的 onreadystatechange回调是否可以处理呢?貌似也不行,原因看这里onreadystatechange 事件-w3school.

    文中很明确的解释了,每当有请求发生时 readyState 都会改变并触发 onreadystatechange 那么问题来了,什么时候知道所有的请求都加载完了?尤其是耗时特长的的资源加载?

    所以,总结一下就是:我们为什么要检测全部的内容加载完毕这个奇怪的需求呢?如果你需要动态处理 dom 那么在 onload|ready 中就可以了,因为此时页面 dom 已经加载完成了。如果你需要对某些异步的请求做监控,则只需要在对应的异步中添加上回调即可。

    有误之处欢迎讨论

    以上。

    balas
    0
  • 迷茫

    迷茫2017-04-10 15:43:14

    这种问题自己多百度查查:http://bbs.csdn.net/topics/350132930
    document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法.
    function subSomething()
    {
    if(document.readyState == “complete”) //当页面加载状态
    myform.submit(); //表单提交
    }

    balas
    0
  • PHP中文网

    PHP中文网2017-04-10 15:43:14

    • window.onload页面(包括资源)准备就绪

    • document.onloadDOM加载完毕

    balas
    0
  • 阿神

    阿神2017-04-10 15:43:14

    我觉得你的意思是window.onload吧,其实内容包含太多的东西了,其实1楼已经说得很明确了,其实说一个方法吧,setTimeout也不知行不行,只是提个意见,仔细读一下1楼的回答,差不多就够了

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:43:14

    window.onload: 可以解决您的担心,因为这是在浏览器解析DOM结构并下载完图片等内容后,才激活的。

    jQuery的document.ready 是在浏览器解析完文档结构后就激活了,此时图片不一定完全加载完毕,因此时间点上比window.onload 要早

    balas
    0
  • 怪我咯

    怪我咯2017-04-10 15:43:14

    window.onload 是楼主需要的答案

    balas
    0
  • Batalbalas