वेब कार्यकर्ता

From Vigyanwiki
Web Workers
StatusLiving Standard
Year started3 April 2009 (2009-04-03)
First published3 April 2009 (2009-04-03)
Organization
  • [[World Wide Web Consortium|W3C]]
  • [[WHATWG|WHATWG]]
CommitteeWHATWG
EditorsIan Hickson
Domain
Website

विश्वव्यापी वेब संकाय (डब्ल्यू3सी) और वेब हाइपरटेक्स्ट एप्लिकेशन टेक्नोलॉजी वर्किंग ग्रुप (डब्ल्यूएचएटीडब्ल्यूजी) द्वारा परिभाषित एक वेब कार्यकर्ता, एक एचटीएमएल पृष्ठ से निष्पादित एक जावास्क्रिप्ट स्क्रिप्टिंग भाषा है जो पृष्ठभूमि प्रक्रिया में चलती है, स्वतंत्र रूप से उन स्क्रिप्ट से जिन्हें उसी एचटीएमएल पृष्ठ से भी निष्पादित किया जा सकता है।[1] वेब कर्मचारी अक्सर बहु-कोर सीपीयू का अधिक प्रभावी ढंग से उपयोग करने में सक्षम होते हैं।[2]

विश्वव्यापी वेब संकाय और डब्ल्यूएचएटीडब्ल्यूजी वेब कर्मचारियों को लंबे समय तक चलने वाली स्क्रिप्ट के रूप में देखते हैं जो क्लिक या अन्य उपयोगकर्ता बातचीत का जवाब देने वाली स्क्रिप्ट से बाधित नहीं होती हैं। ऐसे कार्यकर्तायों को उपयोगकर्ता की गतिविधियों से बाधित होने से बचाने के लिए वेब पेजों को उसी समय उत्तरदायी रहने देना चाहिए जब वे पृष्ठभूमि में लंबे समय तक कार्य कर रहे हों।

वेब कार्यकर्ता विनिर्देश एचटीएमएल जीवन स्तर का हिस्सा है।[1]

सिंहावलोकन

जैसा कि वेब हाइपरटेक्स्ट एप्लिकेशन टेक्नोलॉजी वर्किंग ग्रुप द्वारा कल्पना की गई है, वेब कर्मचारी अपेक्षाकृत भारी वजन वाले हैं और बड़ी संख्या में उपयोग करने का संकल्प नहीं रखते हैं। उच्च स्टार्ट-अप प्रदर्शन लागत और उच्च प्रति-इंस्टेंस मेमोरी लागत के साथ उनके लंबे समय तक जीवित रहने का संकल्प है।[1]

वेब कार्यकर्ता एचटीएमएल प्रलेख की स्क्रिप्ट के संदर्भ से बाहर चलते हैं। नतीजतन, जबकि उनके पास प्रलेख ऑब्जेक्ट मॉडल (डीओएम) तक पहुंच नहीं है, वे जावास्क्रिप्ट प्रोग्रामों के निष्पादन (कंप्यूटर विज्ञान) की सुविधा प्रदान कर सकते हैं।

सुविधाएँ

संदेश देना के माध्यम से वेब कर्मचारी मुख्य दस्तावेज़ के साथ इंटरैक्ट करते हैं। निम्न कोड एक कार्यकर्ता बनाता है जो दी गई फ़ाइल में जावास्क्रिप्ट को निष्पादित करेगा।

var worker = new Worker("worker_script.js");

कार्यकर्ता को एक संदेश भेजने के लिए, postMessage नीचे दिखाए गए अनुसार कार्यकर्ता वस्तु की विधि का उपयोग किया जाता है।

worker.postMessage("Hello World!");
onmessage ई> संपत्ति एक कार्यकर्ता से जानकारी प्राप्त करने के लिए एक इवेंट हैंडलर का उपयोग करती है।
worker.onmessage = function(event) {
	alert("Received message " + event.data);
	doSomething();
}
	
function doSomething() {
	//do work
	worker.postMessage("Work done!");
}

worker.terminate();

एक बार एक कार्यकर्ता को समाप्त कर दिया जाता है, यह दायरे से बाहर हो जाता है और इसे संदर्भित करने वाला चर अपरिभाषित हो जाता है; इस बिंदु पर जरूरत पड़ने पर एक नया कार्यकर्ता बनाया जाना है।

उदाहरण

वेब वर्कर्स का सबसे सरल उपयोग यूजर इंटरफेस को बाधित किए बिना कम्प्यूटेशनल रूप से महंगा कार्य करने के लिए है।

इस उदाहरण में, मुख्य दस्तावेज़ प्रमुख संख्याों की गणना करने के लिए एक वेब वर्कर को जन्म देता है, और उत्तरोत्तर सबसे हाल ही में पाए गए प्राइम नंबर को प्रदर्शित करता है।

मुख्य पृष्ठ इस प्रकार है: <वाक्यविन्यास लैंग = html4सख्त> <!DOCTYPE html> <एचटीएमएल>

<सिर>
 <शीर्षक>कर्मी का उदाहरण: एक-कोर संगणना</शीर्षक>
</ सिर>
<शरीर>

अब तक खोजी गई उच्चतम अभाज्य संख्या है: <output id= result></output>

 <स्क्रिप्ट>
  var कार्यकर्ता = नया कार्यकर्ता ('कार्यकर्ता.जेएस');
  कार्यकर्ता.ऑनमेसेज = फ़ंक्शन (ईवेंट) {
    document.getElementById ('परिणाम')। textContent = event.data;
  };
 </स्क्रिप्ट>
</शरीर>

</html> </वाक्यविन्यास हाइलाइट> Worker() ई> कंस्ट्रक्टर कॉल एक वेब वर्कर बनाता है और रिटर्न करता है worker ऑब्जेक्ट उस वेब वर्कर का प्रतिनिधित्व करता है, जिसका उपयोग वेब वर्कर के साथ संवाद करने के लिए किया जाता है। वह वस्तु है onmessage इवेंट हैंडलर कोड को वेब वर्कर से संदेश प्राप्त करने की अनुमति देता है।

वेब वर्कर स्वयं इस प्रकार है:

var n = 1;
var end_value = 10**7;
search: while (n <= end_value) {
  n++;
  for (var i = 2; i <= Math.sqrt(n); i++)
    if (n % i == 0)
      continue search;
  // found a prime!
  postMessage(n);
}

पृष्ठ पर वापस संदेश भेजने के लिए, postMessage() प्राइम मिलने पर संदेश पोस्ट करने के लिए विधि का उपयोग किया जाता है।[1]


समर्थन

यदि ब्राउज़र वेब वर्कर्स का समर्थन करता है, तो वर्कर प्रॉपर्टी ग्लोबल विंडो ऑब्जेक्ट पर उपलब्ध होगी।[3] यदि वेब ब्राउज़र इसका समर्थन नहीं करता है तो वर्कर संपत्ति अपरिभाषित होगी।

निम्न उदाहरण कोड एक ब्राउज़र पर वेब वर्कर समर्थन के लिए जाँच करता है

function browserSupportsWebWorkers() {
  return typeof window.Worker === "function";
}

वेब कर्मचारी वर्तमान में Google क्रोम, ओपेरा (वेब ​​ब्राउज़र), माइक्रोसॉफ्ट बढ़त , इंटरनेट एक्सप्लोरर (संस्करण 10), mozilla फ़ायरफ़ॉक्स और सफारी (वेब ​​ब्राउज़र) द्वारा समर्थित हैं।[4][5][6] आईओएस (एप्पल)ऐप्पल) के लिए मोबाइल सफारी ने आईओएस 5 के बाद से वेब श्रमिकों का समर्थन किया है। एंड्रॉइड (ऑपरेटिंग सिस्टम) ब्राउज़र ने पहले एंड्रॉइड 2.1 में वेब कर्मचारियों का समर्थन किया था, लेकिन एंड्रॉइड 4.4 में बहाल होने से पहले एंड्रॉइड संस्करण 2.2-4.3 में समर्थन हटा दिया गया था।[7][8]


संदर्भ

  1. 1.0 1.1 1.2 1.3 Web Workers, WHATWG, retrieved 2 January 2023
  2. "एचटीएमएल लिविंग स्टैंडर्ड". Html.spec.whatwg.org. 30 January 2017. Retrieved 31 January 2017.
  3. "HTML5 Up and Running" Mark Pilgrim. O'Reilly/Google Press. August 2010
  4. "Introducing HTML5", Lawson, B. and Sharp, R., 2011.
  5. "HTML5 and CSS3" Brian P. Hogan. The Pragmatic Programmers, LLC 2010.
  6. "क्या मैं उपयोग कर सकता हूँ... वेब वर्कर". caniuse.com. Retrieved 30 September 2019.
  7. "Spotlight: Benchmarking Android 2.1 with Web Workers - Isogenic Engine". Archived from the original on 19 October 2013. Retrieved 10 July 2011.
  8. "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Retrieved 10 June 2017.


बाहरी संबंध