我正在开发一个与此类似的网站:http://www.nike.com/jumpman23/aj2012/我正在预加载大量图片。预加载时不应锁定浏览器,因此我使用setTimeout函数一次只加载一个图像。在FF / Chrome / Safari e.t.c中一切正常,但IE遇到了问题。
有时它会加载大约400张图像然后进入错误功能,有时它只会预加载前6张图像 - 它似乎完全随机。很难解释这个问题,所以我把代码的重要部分放在这里:http://sidneywidmer.ch/preloader/ (先让shure打开你的控制台)
你可以忽略一些像loadOrder变量这样的东西:)
我还尝试为IE设置不同的间隔时间,或暂停下载错误一秒钟,但似乎没有任何工作......
有人知道如何解决这个问题吗?
更新 经过一番调查,我可以肯定地说,某种程度上存在内存泄漏等问题。在IE中,RAM使用率从1.4 GB上升到3 GB以上,然后停止加载图像......
答案 0 :(得分:0)
尝试使用延迟图片加载。看看这个jQuery http://www.appelsiini.net/projects/lazyload
插件答案 1 :(得分:0)
好吧,我终于可以自己解决这个问题......问题是Internet Explorer(也许还有其他浏览器)消耗了大量的RAM,而图像在DOM中被预加载。实际大小(例如10kb)并不重要。最重要的是图像的分辨率。因此,虽然我可以轻松地预装1000张分辨率为400 x 200且大小为20 kb的图像,但根本不可能预装1000张图像,分辨率为1024 x 768,文件大小为10kb。
我不知道为什么会出现这种情况,也许有人可以更深入地描述这种行为。