2012-01-03 63 views
1

我希望我的頁面發送圖像請求,但我不在乎圖像何時完成下載。該請求不應阻止OnLoad事件觸發。如何在不阻塞OnLoad事件的情況下在我的頁面上預加載圖像?

如果我使用內聯javascript在頁面加載之前將此圖像標記添加到頁面,似乎瀏覽器會一直等到圖像下載完成之前下載OnLoad,這不是我想要的。

有沒有辦法讓圖像的請求沒有阻止OnLoad事件?我在IE9中注意到,如果我設置了圖像元素源,但不將它附加到DOM,那麼瀏覽器會發出一個非阻塞請求(實際上這看起來像一個錯誤,因爲我還沒有將元素放入DOM中,一些投機下載工作?)。儘管如此,這在其他瀏覽器中表現不一樣。

我也嘗試在添加元素之前設置一個小的超時,但這並沒有幫助。

謝謝。

+1

您無法預加載_and_不阻止'onload'。預加載的整個_point_是確保圖像在瀏覽器被告知顯示時存在。也許你應該考慮使用文檔就緒事件,而不是onload事件,它在哪裏很重要。 – 2012-01-03 19:20:44

+0

感謝您的回覆。我想用「預加載」這個詞有點誤導我。我不在乎圖像何時可用,我的真正意圖是讓服務器通過發出這個請求開始工作(這幾乎是一次性請求)。這就是爲什麼我正在尋找一種方法來發出請求而不阻塞OnLoad事件。 – gga80 2012-01-03 19:23:49

+0

如果你在加載之前不需要它,你爲什麼之前稱它?嘗試使用setTimeout將其異步觸發,並在任務隊列中將其向下移動。 – 2012-01-03 19:25:24

回答

1

你有沒有想過使用「DOMContentLoaded」代替onload?它受所有瀏覽器支持,並已在IE9中。

如果您的目標是舊版本的IE,則可以使用readyState屬性。

我無法理解這裏的全部觀點,但無論如何,image元素自己的DOM事件可能會有用。

+0

感謝您的回覆。這可能很有用,雖然我必須對頁面進行一些重要的重構來利用它。 – gga80 2012-01-03 20:28:02

相關問題