Javascript 带有预加载、加载问题的图像刷新
Javascript image refresh with preload, loading issues
我有一个小的 *.html 文件显示并定期更新 *.png 文件。
为了防止在重新加载期间闪烁,我在代码中预加载图像。
虽然我观察到,在某些引用期间(似乎是随机的),图像仅显示部分(下部的 1/2 到 1/3 是空白)并且需要延迟才能完成加载。
我怎样才能避免这种情况?
index.html
<html>
<body onload="update();">
<script src="update.js"></script>
<div id="container">
<img id="img_display" src="my_image.png"/>
</div>
</html>
update.js
function update() {
update_image();
setTimeout(update, 1000);
}
function update_image() {
//timestamp as random identifier
var timestamp = new Date().getTime();
//create image path, appending timestamp to force reload of image instead of using chached version
var s_src = "my_image.png?random=" + timestamp;
// preload image to prevent flashing
var img = new Image();
img.src = s_src;
// get img container ID
var s_id = "img_display";
// refresh source parameter
document.getElementById(s_id).src = s_src;
}
在update.js
/*代替*/
function update() {
update_image();
setTimeout("update();", 1000);
}
/*使用*/
function update() {
setTimeout(function(){ update_image(); }, 1000);
}
我有一个小的 *.html 文件显示并定期更新 *.png 文件。 为了防止在重新加载期间闪烁,我在代码中预加载图像。
虽然我观察到,在某些引用期间(似乎是随机的),图像仅显示部分(下部的 1/2 到 1/3 是空白)并且需要延迟才能完成加载。
我怎样才能避免这种情况?
index.html
<html>
<body onload="update();">
<script src="update.js"></script>
<div id="container">
<img id="img_display" src="my_image.png"/>
</div>
</html>
update.js
function update() {
update_image();
setTimeout(update, 1000);
}
function update_image() {
//timestamp as random identifier
var timestamp = new Date().getTime();
//create image path, appending timestamp to force reload of image instead of using chached version
var s_src = "my_image.png?random=" + timestamp;
// preload image to prevent flashing
var img = new Image();
img.src = s_src;
// get img container ID
var s_id = "img_display";
// refresh source parameter
document.getElementById(s_id).src = s_src;
}
在update.js
/*代替*/
function update() {
update_image();
setTimeout("update();", 1000);
}
/*使用*/
function update() {
setTimeout(function(){ update_image(); }, 1000);
}