用Js或者Jq判断一个资源是否加载完毕

比如一个图片,等它加载完毕,也就是请求到之后,再去执行另一个操作。

那其它资源类型呢,比如swf是否加载完,是否是同样的方法?

或者一个http请求又是如何监控呢?

阅读 9.2k
4 个回答

浏览器去加载这些资源或者是异步去发http请求的话,一般都会提供钩子函数

例如,你异步去获取js代码:

    const script = document.createElement('script')
    script.src = 'xxxx'
    script.onload = script.onreadystatechange = function () {
        if (!this.readyState || /^(loaded|complete)$/.test(this.readyState)) {
            resolve(window[namespace][name])
            sc.onload = sc.onreadystatechange = null
        }
    }
    document.body.append(script)

你创建的script对象上提供了加载的钩子函数:onload/onreadystatechange(浏览器的兼容性处理),当你把script标签插入到DOM中时,浏览器另开一个线程去异步加载你需要的js资源,在加载的不同阶段:this.readyState对应不同的值,这个时候根据需要设置你的回调函数。这样就完成了对于一段js代码异步获取的监控。

onload事件或者readystatechange事件,但不是所有对象都支持。另外promise应该也能吧

http://stackoverflow.com/ques...

Use SWFObject to embed the SWF, then use the callback function to poll the SWF's PercentLoaded value.

If the value is 0, the SWF has not loaded yet. When it hits 100, the SWF is fully loaded.

Here's a tutorial for polling PercentLoaded, complete with code examples.

可以考虑ajax或者fetch API

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏