我有一个网络摄像头,每隔几秒就会覆盖一次“pic.jpg”。我遇到的问题有时是我下面的代码在网络摄像头覆盖旧图像的确切时间执行,导致图像损坏。然后当函数再次运行时(在网络摄像头完成上传图像后)一切正常并显示图像。所以我试图阻止损坏的图像永远显示。我是 javascript/jquery 的新手,所以这在很多层面上可能是错误的:
<style type="text/css">
#pictest {display:none}
</style>
function updateCams(){
var camurl = "/pic.jpg?"+new Date().getTime();
$("#pictest").attr("src", camurl);
$("#pictest").error(function(){
/* image was being written. Restart the function and try again */
updateCams;
})
/* I want a success/valid type function to go here and update the visible image only on success*/
$("#pictest").valid(function(){
$("#pic").attr("src", camurl);
})
};
setInterval( "updateCams()", 2000 );
<img src="pic.jpg" width="640" height="480" id="pic" alt="Loading..." />
<img src="pic.jpg" id="pictest" />
无论如何,“有效”功能不起作用。我已经尝试过有效/验证/成功,甚至是 if/else,但只有 .error 可以正常工作。