पर फ़ंक्शंस कैसे पास करें मैं एक वेब मैनेजर के लिए एक पोस्ट मैसेज() के माध्यम से फ़ंक्शन (या फ़ंक्शन) पास करना चाहता हूं, क्योंकि मैं नियमित फ़ाइलों का संदर्भ नहीं दे सकता।जावास्क्रिप्ट वेब वर्कर
वेब कार्यकर्ता को बंद करने के लिए, मैं एक ऑब्जेक्ट यूआरएल (ब्लॉब से बनाया गया) को वर्कर कन्स्ट्रक्टर में पास कर रहा हूं। तब मैं एक संदेश पास कर रहा हूं, लेकिन अब तक कोई भाग्य संदेश में कोई फंक्शन नहीं डाल रहा है। (JSON) संदेश में फ़ंक्शंस सीधे नहीं हो सकते हैं (जैसा कि here निर्धारित है), और हालांकि आयातक सैद्धांतिक रूप से अनुमति है, मुझे अब तक क्रोम या फ़ायरफ़ॉक्स में इसका उपयोग करने में कोई सफलता नहीं मिली है।
html फ़ाइल के शरीर:
<div id="divText">1234</div>
<script>
var greeter = function greet(name) {
return "hello " + name;
};
function webWorkerWorker() {
self.postMessage("started1");
self.onmessage = function(event) {
importScripts(event.data.content);
self.postMessage("importScripts success");
var result = greeter("john");
self.postMessage(result);
};
}
var functionBody = mylib.extractFunctionBody(webWorkerWorker);
var functionBlob = mylib.createBlob([functionBody]);
var functionUrl = mylib.createObjectURL(functionBlob);
var functionBody2 = mylib.extractFunctionBody(greeter);
var functionBlob2 = mylib.createBlob([greeter]);
var functionUrl2 = mylib.createObjectURL(functionBlob2);
var worker = new Worker(functionUrl);
worker.onmessage = function(event) {
document.getElementById("divText").innerHTML = event.data;
}
worker.postMessage({
type: "init",
content: functionUrl2
});
</script>
वर्तमान में यह divText मान "importScripts सफलता" सेटिंग का परिणाम है।
क्या मैं कुछ गलत कर रहा हूं? क्या कोई अन्य तरीका है कि वेब श्रमिकों को कार्य पारित किया जा सकता है? या यह संभव नहीं है?
हाय आप अपने "mylib" कार्यों प्रदान कर सकते हैं आप here..Thanks – Buzz