2012-07-06 14 views
9

में वेबवर्कर्स ऐसा लगता है कि वेबवर्कर्स अभी तक पूरी तरह लागू नहीं हुए हैं। मुझे पता है कि मूलभूत विकास के शुरुआती चरण में है, लेकिन हो सकता है कि किसी ने इसे पहले से ही काम करने की कोशिश की हो?जीडब्ल्यूटी एलिमेंटल

उत्तर

15

वेब श्रमिकों के साथ समस्या यह है कि वे वास्तव में मानक जीडब्ल्यूटी/जावा मॉडल में फिट नहीं होते हैं - मेरी राय में वे मानक जेएस मॉडल को मुश्किल से फिट करते हैं।

वेब श्रमिक अनिवार्य रूप से अलग-अलग जावास्क्रिप्ट वीएम के बीच डेटा को आगे और आगे पास करके काम करते हैं। वह डेटा एक स्ट्रिंग के रूप में होना चाहिए, और प्रत्येक कार्यकर्ता को अपने जेएस को अलग से लोड करना होगा। इसका मतलब यह है कि एक कार्यकर्ता (या मुख्य पृष्ठ) में घोषित कोई भी चर किसी अन्य से सुलभ नहीं है, जब तक यह स्ट्रिंग डेटा के हिस्से के रूप में पारित नहीं किया जाता है, श्रमिकों के बीच आगे और पीछे धकेल दिया जाता है।

तो जब आप जीडब्ल्यूटी/जावा पर विचार करते हैं तो यह कैसे काम करता है? जावा परिप्रेक्ष्य से, यह एकाधिक धागे के बराबर नहीं है, लेकिन एकाधिक JVMs! विभिन्न प्रक्रियाएं स्ट्रिंग्स (या अधिक महत्वपूर्ण रूप से, जावा ऑब्जेक्ट्स नहीं) को आगे और आगे पास करके संवाद कर सकती हैं, और किसी भी अन्य राज्य को साझा नहीं कर सकती हैं। दो आभासी मशीनों के बीच भी स्थिर चर अलग हो सकते हैं।

लिंक आप पोस्ट से, JsWorker के स्रोत की जाँच - आप जे एस स्क्रिप्ट का URL के साथ शुरू करने के लिए साथ JsWindow.newWorker के माध्यम से इस का एक उदाहरण बना सकते हैं और JsWorker प्रतिक्रिया के लिए सुनने के लिए तरीकों का समर्थन करता है, और इसे भेजने के लिए इसे करने के लिए संदेश देने के लिए संदेश।

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

GWT-NS प्रोजेक्ट में पहले से ही कुछ वेब कार्यकर्ता नमूने हैं, जो कि अपने स्वयं के लिंकर का उपयोग करके जेएस फाइलों को लोड करने के लिए लोड करने के लिए बनाया गया है, और कुछ अन्य सुविधा टुकड़े भी हैं।

+0

बिल्कुल सही जवाब। धन्यवाद! – JAre