2

我正在一个与此类似的网站上工作:http: //www.nike.com/jumpman23/aj2012/我正在预加载很多图像。预加载时不应锁定浏览器,因此我使用 setTimeout 函数一次仅加载一个图像。在 FF/Chrome/Safari 等中一切正常,但 IE 遇到了问题。

有时它会加载大约 400 张图像,然后进入错误函数,有时它只是预加载前 6 张图像——看起来完全随机。很难解释这个问题,所以我把代码的重要部分放在这里:http ://sidneywidmer.ch/preloader/(先让舒尔打开你的控制台)

你可以忽略一些东西,比如 loadOrder 变量:)

我还尝试为 IE 设置不同的间隔时间,或者在出错时暂停下载一秒钟,但似乎没有任何效果......

有谁知道我该如何解决这个问题?

更新: 经过一番调查,我可以肯定地说存在某种内存泄漏或其他问题。在 IE 内存使用量从 1.4 GB 上升到超过 3 GB,然后它停止加载图像......

4

2 回答 2

0

尝试使用延迟图像加载。看看这个插件到 jQuery http://www.appelsiini.net/projects/lazyload

于 2012-04-05T10:00:20.367 回答
0

好的,我终于可以自己解决问题了……问题是 Internet Explorer(可能还有其他浏览器)在 DOM 中预加载图像时会消耗大量 RAM。实际大小(例如 10kb)并不重要。最重要的是图像的分辨率。因此,虽然我可以轻松地预加载 1000 张分辨率为 400 x 200 且大小为 20kb 的图像,但根本不可能预加载 1000 张分辨率为 1024 x 768 且文件大小为 10kb 的图像。

我不知道为什么会这样,也许有人可以更深入地描述这种行为。

于 2012-04-09T09:43:43.283 回答