पर प्रतिक्रिया करने में बहुत लंबा समय लगता है मैं एक DOM ऑब्जेक्ट के स्रोत को बदलकर प्रत्येक 100ms फ़ाइल में "छवि" प्राप्त करने का प्रयास कर रहा हूं। मैं देख सकता हूं कि जीईटी कॉल वास्तव में हर 100ms सही छवि को वापस कर रहा है, लेकिन वास्तविक छवि प्रदर्शन केवल एक बार एक बार अपडेट होता है।DOM
<img id="videoDisplay" style="width:800; height:600"/>
<script type="text/javascript">
function videoDataPoll(filename) {
setTimeout(function() {
document.getElementById("videoDisplay").src = filename + "?random="+(new Date()).getTime();
videoDataPoll(filename);
}, 100);
}
</script>
अद्यतन: यहाँ मेरी जावास्क्रिप्ट कोड है कि काम करता है
<canvas id="videoDisplay" style="width:800; height:600"/>
<script type="text/javascript">
var x=0, y=0;
var canvas, context, img;
function videoDataPoll() {
var filename = getFilename();
canvas = document.getElementById("videoDisplay");
context = canvas.getContext("2d");
img = new Image();
img.onload = function() {
context.drawImage(img, x, y);
setTimeout("videoDataPoll()", 100);
}
img.src = filename + "?random=" + (new Date()).getTime();
}
<script>
फिर भी एक ही गति से अद्यतन करता है (जो वास्तव में हर 5 सेकंड, नहीं 1s है: इस प्रकार पहले से लोड होने का उपयोग करने के समारोह बदल दिया मूल रूप से कहा गया है)। इसलिए प्रत्येक 50 अनुरोधों के लिए (5 सेकंड के लिए 10/सेकंड) तत्व केवल एक बार अपडेट हो जाता है।
एक और महत्वपूर्ण नोट: यह दूसरा समाधान मेरे लोकहोस्ट पर पूरी तरह से काम करता है, जहां मैं इस मुद्दे पर चलता हूं, जब मैं एक दूरस्थ वेब होस्ट को दूरस्थ होस्ट से चला रहा हूं।
आपको प्रदर्शित करने से पहले छवियों को प्रीलोड करना होगा। अन्यथा, 1s वह समय है जब छवि लोड हो रही है। आप [इस फ़ंक्शन] का उपयोग कर सकते हैं (http://short-tag.info/2013/04/preload-images-with-plain-javascript/)। – antoox
पहली बार 'videoDataPoll' कहलाता है,' filename' – undefined
हाहा, प्रतिभा टिप्पणी है। –