「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" />
とにかく、「有効」機能は機能しません。valid/validate/success と if/else を試しましたが、.error だけが正しく動作します。