搜尋

首頁  >  問答  >  主體

javascript - 用Js或Jq判斷一個資源是否載入完畢

例如一個圖片,等它載入完畢,也就是請求到之後,再去執行另一個操作。

那其它資源類型呢,例如swf是否載入完,是否是同樣的方法?

或是一個http請求又是如何監控呢?

天蓬老师天蓬老师2870 天前728

全部回覆(4)我來回復

  • PHP中文网

    PHP中文网2017-05-18 10:59:54

    瀏覽器去載入這些資源或是非同步去發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時,瀏覽器會另開一個執行緒去非同步載入你需要的script对象上提供了加载的钩子函数:onload/onreadystatechange(浏览器的兼容性处理),当你把script标签插入到DOM中时,浏览器另开一个线程去异步加载你需要的js资源,在加载的不同阶段:this.readyState对应不同的值,这个时候根据需要设置你的回调函数。这样就完成了对于一段js資源,在載入的不同階段:this.readyState對應不同的值,這個時候根據需要設定你的回呼函數。這樣就完成了對於一段

    程式碼非同步取得的監控。 🎜

    回覆
    0
  • PHPz

    PHPz2017-05-18 10:59:54

    onload事件或readystatechange事件,但不是所有物件都支援。另外promise應該也能吧

    回覆
    0
  • PHPz

    PHPz2017-05-18 10:59:54

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

    雷雷

    回覆
    0
  • 阿神

    阿神2017-05-18 10:59:54

    可以考慮ajax或fetch API

    回覆
    0
  • 取消回覆