【发布时间】:2016-07-28 17:58:58
【问题描述】:
我编写了一个可以在两张图片之间快速切换的 HTML 页面。 在result 中,我可以看到第一张图片被冻结了大约一分钟,然后它们开始快速而漂亮地翻转。就好像第一张图片加载很快,第二张需要更多时间(它们的大小完全相同)
- 什么可以解释这种行为?
- 我应该怎么做才能让它们从一开始就翻转?
代码:
<head>
<title>Visualize</title>
<script src="jquery-3.1.0.min.js"></script>
<script>
$(document).ready(function()
{
var file = "a";
setInterval(function()
{
$('.canvas').attr("src","images/"+ file +".png");
file = flipFile(file);
}, 290);
});
function flipFile(file)
{
if(file=="a")
{
file="b";
}
else if(file=="b")
{
file = "a";
}
return file;
}
</script>
</head>
<body>
<div class="container">
<img class="canvas" src="/images/file.png">
</div>
</body>
【问题讨论】:
-
您检查过第二张图片的大小了吗?您是否也尝试过更改 setInterval 值?
-
一个是相对路径,一个是根目录,但听起来图像加载需要一段时间,可能需要预加载或使用 onload 而不是准备好。
-
是的,预加载图像。您也可以将您的 JS 移动到
<body>标签的底部。这样你就不需要.ready回调了。 -
你能详细说明一下预加载吗?
标签: javascript jquery html performance