समाधान: setInterval ब्राउज़र की पृष्ठभूमि में सामान्य रूप से नहीं चल सकता है।
संदर्भ
Worker"वेब वर्कर" क्या है
"वेब वर्कर" वेब सामग्री को पृष्ठभूमि थ्रेड में स्क्रिप्ट चलाने के लिए एक सरल तरीका प्रदान करता है। थ्रेड उपयोगकर्ता इंटरफ़ेस को परेशान किए बिना कार्य कर सकते हैं। इसके अलावा, वे XMLHttpRequest का उपयोग करके I / O प्रदर्शन कर सकते हैं। एक बार बनाने के बाद, एक कार्यकर्ता जावास्क्रिप्ट कोड को एक संदेश भेज सकता है, जिसने कोड (और इसके विपरीत) द्वारा निर्दिष्ट इवेंट हैंडलर को संदेश पोस्ट करके बनाया है।
निर्देश
नीचे दिए गए नमूना कोड में, हम सबसे सरल टाइमर को लागू करते हैं और इसे प्रत्येक 100 मिली सेकेंड में ट्रिगर करते हैं।
var timmer = new Worker(
URL.createObjectURL(
new Blob(
[
"onmessage=function(event){setInterval(function(){postMessage(1);},100)}",
],
{ type: "application/javascript" }
)
)
);
timmer.onmessage = function (event) {
console.log("get message");
};
timmer.postMessage("start");
मानक उपयोग
उपरोक्त उदाहरण में, हमने createObjectURL का उपयोग करके एक पता बनाया है। चूंकि हमें जिस कोड को निष्पादित करने की आवश्यकता है वह अपेक्षाकृत सरल है, यह विधि अधिक संक्षिप्त होगी। जब हमें जिस कार्य को निष्पादित करने की आवश्यकता होती है वह कोड अधिक जटिल होता है, हम कार्य को एक स्वतंत्र js फ़ाइल के रूप में अलग से लिख सकते हैं। जानकारी के लिए, कृपया निम्न कोड देखें। अधिक विस्तृत परिचय हैं, आप लेख के शीर्ष पर संदर्भ सामग्री का उल्लेख कर सकते हैं।
var timmer = new Worker('worker.js');