जावास्क्रिप्ट में मल्टीथ्रेडिंग के लिए वेब वर्कर्स का उपयोग कैसे करें?

Javaskripta Mem Maltithredinga Ke Li E Veba Varkarsa Ka Upayoga Kaise Karem



जावास्क्रिप्ट में, साइट के समग्र उपयोगकर्ता इंटरफ़ेस को बढ़ाने के लिए कई दृष्टिकोण हैं। 'वेब वर्कर' एक ऐसा दृष्टिकोण है जो मुख्य थ्रेड को अवरुद्ध किए बिना निष्पादित करने की अनुमति देता है। इसमें अपना अलग जावास्क्रिप्ट इंजन उदाहरण शामिल है, और इसलिए यह मुख्य थ्रेड की कार्यक्षमताओं को लागू नहीं कर सकता है।

यह लेख चर्चा करेगा कि इसका उपयोग कैसे करें 'वेब वर्कर' जावास्क्रिप्ट में मल्टीथ्रेडिंग के लिए।







वेब वर्कर क्या हैं?

'वेब कार्यकर्ता' एक ब्राउज़र एपीआई से मेल खाता है जो जावास्क्रिप्ट को कार्यों को समानांतर/एक ही समय में एक अलग/समर्पित थ्रेड पर चलाने में सक्षम बनाता है।



वेब वर्कर्स की क्या आवश्यकता है?

चूंकि जावास्क्रिप्ट सिंगल-थ्रेडेड है, इसलिए, जटिल जावास्क्रिप्ट कोड यूआई थ्रेड को ब्लॉक कर देते हैं यानी, मुख्य विंडो को रोक देते हैं जो रिफ्रेशिंग, उपयोगकर्ता इनपुट घटनाओं को लागू करने आदि के सभी कार्यों का सामना करता है। ऐसे परिदृश्य में, उपयोगकर्ता अनुभव प्रभावित होता है . इस समस्या से निपटने के लिए, 'वेब वर्कर' प्रभाव में आता है और यूआई थ्रेड के अवरोधन का समाधान करता है।



जावास्क्रिप्ट के साथ मल्टीथ्रेडिंग के लिए वेब वर्कर्स का उपयोग कैसे करें?

एक बनाने के लिए 'वेब वर्कर' , वर्कर कंस्ट्रक्टर का उपयोग करें। यह ऐसा है कि यह अपने तर्क के रूप में एक यूआरएल लेता है, जो वांछित कार्यक्षमता को लागू करने वाले वर्कर स्क्रिप्ट फ़ाइल के पथ से मेल खाता है। हालाँकि, HTML फ़ाइल में वर्कर कोड शामिल करने के लिए, का उपयोग करें 'बूँद' वर्कर कोड लिखने के लिए.





सिंटैक्स (एक वेब वर्कर बनाना)

कॉन्स्ट एक्स = नया मज़दूर ( 'कार्यकर्ता.जेएस' ) ;

सिंटैक्स (कार्यकर्ता को संदेश भेजना)



कॉन्स्ट एक्स = नया मज़दूर ( 'कार्यकर्ता.जेएस' ) ;

सिंटैक्स (कार्यकर्ता से संदेश प्राप्त करना)

एक्स। संदेश पर = समारोह ( आयोजन ) {
सांत्वना देना। लकड़ी का लट्ठा ( आयोजन। डेटा ) ;
} ;

उदाहरण: जावास्क्रिप्ट में किसी संख्या के फैक्टोरियल की गणना करने के लिए 'वेब वर्कर' का उपयोग
निम्नलिखित उदाहरण का उपयोग करता है 'कार्यकर्ता()' एक वेब वर्कर बनाने और किसी संख्या के फैक्टोरियल की गणना करने के लिए कंस्ट्रक्टर:

DOCTYPE html >
< एचटीएमएल >
< सिर >
< h2 शैली = 'पाठ-संरेखण: केंद्र;' > वेब वर्कर्स उदाहरण एच 2 >
सिर >
< शरीर >
< लिखी हुई कहानी >
कॉन्स्ट एक्स = नया मज़दूर ( यूआरएल. createObjectURL ( नया ब्लॉब ( [
`
// वर्कर स्क्रिप्ट
कॉन्स्ट तथ्य = ( एन ) => {
अगर ( एन == 0 || एन == 1 ) {
वापस करना 1n ;
}
अन्य {
वापस करना बिगइंट ( एन ) * तथ्य ( बिगइंट ( एन ) - 1n ) ;
}
} ;
खुद। संदेश पर = ( आयोजन ) => {
कॉन्स्ट साथ = तथ्य ( आयोजन। डेटा ) ;
खुद। संदेश भेजें ( साथ। स्ट्रिंग ( ) ) ;
} ; `
] , { प्रकार : 'पाठ/जावास्क्रिप्ट' } ) ) ) ;
एक्स। संदेश भेजें ( 15एन ) ;
एक्स। संदेश पर = ( आयोजन ) => {
कॉन्स्ट बाहर = आयोजन। डेटा ;
सांत्वना देना। लकड़ी का लट्ठा ( 'एक वेब वर्कर के माध्यम से 15 का फैक्टोरियल->' , बाहर ) ;
} ;

शरीर >

एचटीएमएल >

इस कोड में, निम्नलिखित चरण लागू करें:

  • सबसे पहले, बताए गए शीर्षक को निर्दिष्ट करें।
  • उसके बाद, एक बनाएं 'वेब वर्कर' ऑब्जेक्ट में ब्लॉब ऑब्जेक्ट का URL होता है जिसमें कार्यकर्ता के लिए कोड शामिल होता है।
  • कार्यकर्ता को समर्पित कोड एक अज्ञात फ़ंक्शन में शामिल है जो पुनरावर्ती फ़ंक्शन के माध्यम से संख्या के फैक्टोरियल की गणना करता है।
  • साथ ही, कार्यकर्ता इसका उपयोग करके मुख्य थ्रेड के माध्यम से भेजे गए संदेशों को सुनता है 'स्वयं.संदेश' ईवेंट, पारित संख्या के फैक्टोरियल को पुनः प्राप्त करता है, और परिणाम को मुख्य थ्रेड के माध्यम से देता है 'संदेश भेजें()' तरीका।
  • मुख्य थ्रेड में, एक वर्कर इंस्टेंस बनाएं और उसे 'नंबर के साथ एक संदेश भेजें' 15एन ”। यहाँ, ' एन ” “BigInt” मान को संदर्भित करता है।
  • जब कार्यकर्ता फैक्टोरियल की गणना कर लेता है, तो वह इसका उपयोग करके परिणाम/परिणाम को मुख्य थ्रेड पर वापस भेज देता है। 'संदेश भेजें()' तरीका।
  • अंत में, मुख्य थ्रेड परिणाम प्राप्त/प्राप्त करता है 'संदेश पर' ईवेंट और कंसोल पर संख्या का संबंधित फैक्टोरियल लौटाता है।

उत्पादन

वेब वर्कर्स के लाभ

समानांतर प्रसंस्करण : समान कोड को समानांतर तरीके से चलाने के मामले में।

कोड निष्पादन में कोई व्यवधान नहीं: कोड का निष्पादन वर्तमान पृष्ठ पर रिफ्रेश आदि के बावजूद किया जाता है।

मूवमेंट ट्रैकिंग: सभी गति का पता लगाना बैकग्राउंड वर्कर में होता है।

सक्षम मल्टीथ्रेडिंग: ये जावास्क्रिप्ट में मल्टीथ्रेडिंग को सक्षम करते हैं।

बढ़ा हुआ प्रदर्शन: अलग-अलग थ्रेड में गहन/चुनौतीपूर्ण कार्य करके प्रदर्शन को अनुकूलित करें।

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

वेब वर्कर्स की सीमाएँ

हालाँकि, वेब वर्कर्स की कुछ सीमाएँ भी हैं। ये इस प्रकार बताए गए हैं:

  • मेमोरी का बेहतर उपयोग.
  • वर्कर थ्रेड में DOM को अपडेट नहीं किया जा सकता या विंडो ऑब्जेक्ट को इनवॉक नहीं किया जा सकता।

निष्कर्ष

'वेब वर्कर्स' एक ब्राउज़र एपीआई से मेल खाता है जो जावास्क्रिप्ट को एक ही समय में एक अलग/समर्पित थ्रेड पर कार्यों को चलाने में सक्षम बनाता है। इनका उपयोग यूआरएल को तर्क के रूप में लेकर किया जा सकता है, जो वर्कर स्क्रिप्ट फ़ाइल के पथ से मेल खाता है। इस ब्लॉग में जावास्क्रिप्ट में मल्टीथ्रेडिंग के लिए 'वेब वर्कर्स' के उपयोग पर चर्चा की गई।