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

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");

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

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

worker.terminate();

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

उदाहरण

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

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

मुख्य पृष्ठ इस प्रकार है:

<!DOCTYPE html>
<html>
 <head>
  <title>Worker example: One-core computation</title>
 </head>
 <body>
  <p>The highest prime number discovered so far is: <output id="result"></output></p>
  <script>
   var worker = new Worker('worker.js');
   worker.onmessage = function (event) {
     document.getElementById('result').textContent = event.data;
   };
  </script>
 </body>
</html>

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

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

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);
}

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

समर्थन

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

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

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

वेब कार्यकर्ता वर्तमान में गूगल क्रोम, ओपेरा (वेब ​​ब्राउज़र), माइक्रोसॉफ्ट बढ़त , इंटरनेट एक्सप्लोरर (संस्करण 10), मोज़िला फ़ायरफ़ॉक्स और सफारी (वेब ​​ब्राउज़र) द्वारा समर्थित हैं।[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 2023-01-02
  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.

बाहरी संबंध