Web Worker बनाना
कार्य के लिए बैकग्राउंड थ्रेड शुरू कीजिए।
Web Worker बनाना, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Web Workers क्यों
JavaScript एक ही मुख्य थ्रेड पर चलता है। लंबी गणना हर चीज़ को रोक देती है: यूआई जम जाता है और क्लिक प्रतिक्रिया देना बंद कर देते हैं। Web Workers स्क्रिप्ट को पृष्ठभूमि के थ्रेड पर चलाते हैं, जिससे पेज प्रतिक्रिया देता रहता है।
worker बनाना
Worker कंस्ट्रक्टर में स्क्रिप्ट URL देकर एक worker बनाएँ। ब्राउज़र उस फ़ाइल को लोड करके अलग थ्रेड पर चलाता है।
const worker = new Worker('worker.js');
// The code in worker.js now runs on its own thread.worker स्क्रिप्ट
worker फ़ाइल साधारण JavaScript होती है, लेकिन अपने अलग वैश्विक दायरे में चलती है (window नहीं, document नहीं)। यह केवल संदेशों के माध्यम से संचार करती है।
// worker.js
console.log('worker started');
// This runs off the main thread.दो अलग वैश्विक दायरे
मुख्य पेज और worker, दोनों का अपना वैश्विक दायरा और स्मृति होती है। वे सीधे चर साझा नहीं कर सकते; वे संदेशों के माध्यम से डेटा की प्रतियाँ एक-दूसरे को भेजते हैं।
- मुख्य थ्रेड:
window, DOM, यूआई - worker थ्रेड:
self, गणना, DOM नहीं
worker में self
worker के अंदर वैश्विक ऑब्जेक्ट self (DedicatedWorkerGlobalScope) होता है। आप इस पर हैंडलर जोड़कर API कॉल कर सकते हैं, हालाँकि अक्सर self निहित रहता है।
// worker.js
self.addEventListener('message', (e) => {
console.log('worker got:', e.data);
});मॉड्यूल worker
आप type: 'module' विकल्प देकर ऐसा worker बना सकते हैं जो ES मॉड्यूल के import का उपयोग करे। इससे worker अन्य मॉड्यूल को व्यवस्थित रूप से आयात कर सकता है।
const worker = new Worker('worker.js', { type: 'module' });
// Inside worker.js you can now use import statements.स्क्रिप्ट आयात करना (क्लासिक)
क्लासिक (गैर-मॉड्यूल) worker में अतिरिक्त स्क्रिप्ट को worker के दायरे में समकालिक रूप से लोड करने के लिए importScripts का उपयोग करें।
// Inside a classic worker:
importScripts('math-utils.js', 'helpers.js');
// Their globals are now available in the worker.worker समाप्त करना
मुख्य थ्रेड से worker को worker.terminate() द्वारा या उसके अंदर से self.close() द्वारा रोकें। इससे थ्रेड और उसकी स्मृति मुक्त हो जाती है।
// From the main thread:
worker.terminate();
// From inside the worker:
// self.close();worker की त्रुटियाँ सँभालना
worker पर error घटना की निगरानी करें, ताकि उसके अंदर उत्पन्न हुई बिना सँभाली गई अपवादों को पकड़ा जा सके। इस घटना में संदेश, फ़ाइलनाम और लाइन संख्या होती है।
worker.addEventListener('error', (e) => {
console.log('worker error:', e.message, 'at line', e.lineno);
});समान-मूल स्रोत की आवश्यकता
worker स्क्रिप्ट उसी मूल स्रोत से दी जानी चाहिए जिस मूल स्रोत से पेज दिया गया है, या Blob URL के माध्यम से। आप किसी मनमाने अलग-मूल स्रोत URL से worker को सीधे लोड नहीं कर सकते।
// Same-origin file path - works:
const w1 = new Worker('/js/worker.js');
// You can also build one from a Blob URL when needed.समर्पित बनाम साझा
Worker समर्पित होता है: वह उसे बनाने वाले पेज से जुड़ा रहता है। SharedWorker तक एक ही मूल स्रोत वाले कई पेज पहुँच सकते हैं। यह पाठ्यक्रम समर्पित worker पर केंद्रित है।
त्वरित जाँच
Web Workers बनाने के बारे में अपनी समझ जाँचें।
पुनरावलोकन
आपने Web Workers बनाना सीखा:
new Worker('worker.js')एक पृष्ठभूमि थ्रेड शुरू करता है।- worker का अपना वैश्विक ऑब्जेक्ट (
self) होता है और उसमें DOM नहीं होता। - आयात के लिए
type: 'module'या क्लासिक worker मेंimportScriptsका उपयोग करें। terminate()/self.close()इसे रोकते हैं।- Workers का मूल स्रोत समान होना चाहिए।
अब थ्रेड के बीच संदेश भेजना सीखेंगे।
एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 59
- पाठ
- 200
अक्सर पूछे जाने वाले प्रश्न
क्या “Web Worker बनाना” पाठ निःशुल्क है?
हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Web Worker बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Web Worker बनाना” में मैं क्या सीखूँगा?
कार्य के लिए बैकग्राउंड थ्रेड शुरू कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JavaScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या JavaScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JavaScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Web Worker बनाना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस JavaScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर JavaScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Web Worker बनाना
- postMessage से संदेश भेजना
- ट्रांसफ़रेबल ऑब्जेक्ट
- उपयोग और सीमाएँ