मेरे पास Requjs और Backbonejs के साथ एक अच्छी तरह से काम कर रहे ऐप लेखन है, लेकिन यह वास्तव में कभी-कभी धीमा हो रहा है ... उदाहरण के लिए जब कुछ अंकगणित कार्य करने की बात आती है!आवश्यकता के साथ एक मॉड्यूल निर्माण में वेब श्रमिकों का उपयोग कैसे करें?
मेरे मॉड्यूल (traffic.js):
define(["jquery", "use!underscore", "use!backbone", "namespace" ],
function ($, _, Backbone, globals) {
.....
var worker = new Worker("arithmetic.js");
worker.addEventListener('message', function(e) {
console.log(e.data);
}, false);
worker.postMessage(globals.data); // Send data to our worker.
});
arithmetic.js: मैं एक वेब कर्मचारी उपयोग करने के लिए इस तरह इस अंकगणित काम करने की कोशिश की
define(["use!underscore", "use!backbone" ],
function ($, _) {
//Here die Operations
});
लेकिन मुझे त्रुटि परिभाषित परिभाषित नहीं है !!
मैंने इसे this की तरह भी कोशिश की लेकिन कोई सफलता नहीं !!
वेब वर्कर का उपयोग requjs या backbonejs के साथ कैसे करें ??
धन्यवाद!
मैं वेब कार्यकर्ता को लोड करने और शुरू करने में सक्षम हूं, लेकिन यह 'postMessage()' का जवाब नहीं देगा यदि 'addEventListener()' 'आवश्यकता (फ़ंक्शन {})' ब्लॉक के भीतर किया जाता है। मेरे कार्यकर्ता कार्यक्रम श्रोता को विभिन्न requjs मॉड्यूल कॉल करने की आवश्यकता है। आपके द्वारा उल्लिखित एपीआई दस्तावेज़ों में उदाहरण, अर्थात् https://github.com/jrburke/requirejs/blob/master/tests/workers.js, कोई 'ऑनमेज' श्रोता सेट नहीं करता है। कोई विचार? – Fuhrmanator
@ फ़ुहरमैनेटर वैकल्पिक रूप से, आप सीधे 'ऑनमेसेज' ईवेंट हैंडलर सेट कर सकते हैं (हालांकि addEventListener हमेशा जावास्क्रिप्ट निंजा द्वारा प्रोत्साहित किया जाता है)। (Http://www.html5rocks.com/en/tutorials/workers/basics/)। ** यदि आप वेब श्रमिकों के लिए आवश्यकताएँ जेएस प्लगइन का उपयोग करते हैं, तो ऑनमेज सिंटैक्स का उपयोग करें, ** मूल कार्यकर्ता उपलब्ध नहीं होने पर अन्यथा, प्लगइन के साथ शामिल पॉलीफिल नकली-वर्कर.जेएस काम नहीं करेगा। –
@puro_nervio मैं इसे अंत में काम करने में सक्षम था। एक कामकाजी उदाहरण मैंने पाया कि कार्यकर्ता 'addEventListener() 'से पहले मुख्य धागे के जवाब देने के लिए' postMessage()' करता है। मुझे लगता है कि मेरी समस्या यह थी कि धागा तैयार नहीं था जब मेरा मुख्य धागा इसे करने के लिए काम कर रहा था। कई मॉड्यूल की आवश्यकताएं कुछ समय लेती हैं, इसलिए 'addEventListener' को मुख्य थ्रेड से पहले' पोस्ट मैसेज() 'को कुछ करने के लिए कहने के लिए निष्पादित नहीं किया गया था। दूसरे शब्दों में, मुख्य धागे को इसके साथ पहले सिंक्रनाइज़ करना होगा। – Fuhrmanator