2012-04-05 98 views
2

我正在類似於此工作的網站上工作:http://www.nike.com/jumpman23/aj2012/其中我預加載了大量圖像。預加載時不應該鎖定瀏覽器,所以我使用setTimeout函數一次只加載一個圖像。在FF/Chrome/Safari e.t.c中一切正常,但IE遇到了問題。Internet Explorer預加載(500多個圖像)

有時它加載大約400張圖像然後進入錯誤功能,有時它只是預先加載前6張圖像 - 它看起來完全是隨機的。這是很難解釋的問題,所以我把代碼的重要組成部分,把它放在這裏:http://sidneywidmer.ch/preloader/ (使舒爾先打開控制檯)

可以忽略一些像loadOrder變量的東西:)

我也試着對IE設置不同的間隔時間,或停留在錯誤的下載。第二,但似乎沒有任何工作...

大家有一個想法,我怎麼能解決這個問題?

更新: 經過一番調查,我可以肯定地說,有某種方式的內存泄漏或什麼。在IE內存使用量從1.4 GB上升到超過3 GB,然後它停止加載圖像...

+0

好吧,加載許多圖像的想法是簡單的...瘋狂。它會殺死你的服務器。請考慮使用畫布動畫代替。 – Joseph 2012-04-05 09:58:40

+1

它不會是一個高頻網站,所以服務器應該能夠處理它 – 2012-04-05 11:45:50

回答

0

好吧,我終於可以自己解決問題...問題是,Internet Explorer(也可能是其他瀏覽器)消耗大量的RAM,而圖像預加載DOM。實際大小(例如10kb)並不重要。最重要的是圖像的解析。因此,雖然我可以輕鬆預加載1000張圖像,分辨率爲400 x 200,大小爲20kb,但預先加載1000張圖像的分辨率爲1024 x 768,文件大小爲10kb是不可能的。

我不知道究竟是什麼原因,也許有人可以更深入地描述這種行爲。

+0

所以你通過降低圖像的分辨率來解決它? – AmazingDreams 2013-06-20 09:27:11

0

嘗試使用惰性圖像加載。看看這個插件jQuery http://www.appelsiini.net/projects/lazyload

+0

感謝您的回答,但我認爲這是更多的圖像很多很長的網站。我正在研究一個項目,其中(預加載後:))將圖像替換爲模擬動畫。 – 2012-04-05 10:19:21