【发布时间】:2012-10-21 13:05:53
【问题描述】:
给定一些图像(动画帧),我想预取它们,然后根据需要将它们显示在网页上。
我尝试了几种预取方式,包括a nifty plugin,但这里有一个非常简单的方法:
<div class="animation-container"></div>
<div class="holding-container" style="display:none"></div>
<script>
$('.holding-container').append('<img src="Image1.png" />');
$('.holding-container').append('<img src="Image2.png" />');
</script>
在 Firebug 或开发者工具的“网络”选项卡中,我看到这些调用导致对服务器的查询,并且图像已成功获取。
现在,我想实际使用这些图像。这是一些非常简化的代码:
$('.animation-container').prepend('<img src="Image1.png"/>');
这就是事情出轨的地方。网络选项卡显示浏览器再次查询服务器(收到 304 NOT MODIFIED)。这导致图像显示前大约有 200 毫秒的延迟。为什么会发生这种情况,我该怎么办?
【问题讨论】:
-
您正在创建一个新的 Image 元素。请尝试从
.holding-container转移它。如果您在附加它时保留参考,那将是最快的:var img1 = $('<img src="Image1.png" />').appendTo(".holding-container");然后像这样做前置:img1.prependTo('.animation-container')
标签: javascript jquery dom