ليس هناك شك عملية المستخدم. شكرًا ، يزودنا HTML5 بآلية متعددة الفروسية.
1. فئة العمال 1. طريقة مقدمة(1) بناء دالة عمل جديد (ARG): تمثل المعلمة ملف JS حيث الرمز الذي تريد تنفيذه ، مثل "myworker.js" ، والمنشئ يعيد بالطبع مثيلًا لفئة العمال
(2) العامل.
(3) يوجد أيضًا حدث رسالة على العامل.
يمكنك أن ترى أن واجهة برمجة تطبيقات فئة Woker موجزة تمامًا.
//main.html <!!! </head> <div id = out> </viv> <إدخال نوع = اسم النص = معرف = txt> <button id = btn> إرسال </button> <script type = text/javaScript> var out = document.getElementById (Out) ؛ Script> </html> // thread1.jsonmessage tion (event) {var res = event.data+وسيم! ؛
عندما أدخل مربع النص الكبير ~ ، انقر فوق الزر "إرسال" ، سيكون هناك التأثير التالي
التحليل والتحليل البسيط ، قمت بإنشاء عامل مثيل للعامل على الموضوع الرئيسي بواسطة Trip1.js. .js تفعل ماذا عن ذلك؟ نعم ، لقد استمع إلى حادثة الرسالة. ، ثم أرسلها مرة أخرى. استمع الموضوع الرئيسي أيضًا إلى حدث رسالة العامل ، وبالتالي سيتم تشغيل الرسالة في الماضي ، ويتم عرض محتوى الرسالة في DIV ، بحيث يتم رؤية التأثير أعلاه.
ربما سوف تستخدم هذا؟ لا جدوى هنا حقًا. العملية ، لأن تعقيده هو O (1) (هاها ، يدرس الخوارزميات مؤخرًا!) ، لكن إذا لم يكن ذلك لعملية بسيطة؟ ميزة هذه الطريقة هي مدى تعقيد الرسائل الفرعية الخاصة بك ، ولن تتوقف عن الخيط الرئيسي
سيتمكن المعلم من استدعاء العامل الجديد () لإنشاء فترات فرعية جديدة فحص المستند الرسمي ووجد أنه لا يوجد وصف ذي صلة.
دعونا نلقي نظرة على مثال على استدعاء العديد من الخيوط الفرعية على الموضوع الرئيسي:
//main.html <!!! </head> <div id = out> </viv> <إدخال نوع = اسم النص = معرف = txt> <button id = btn> إرسال </button> <script type = text/javaScript> var out = document.getElementById (Out) ؛ . out.innertext = e.data ؛} ، false) ؛ ؛ ؛
يتطلب الخيط الرئيسي اثنين من المواضيع لإكمال مهمة واحدة. مع النتيجة النهائية ، يتم عرضه على الصفحة.
يمكن تقديم ملفات JS الأخرى في الفوتقات الفرعية ثم تسمى ، مثل مثال الجانب السفلي.
//main.html <!!! </head> <div id = out> </viv> <إدخال نوع = اسم النص = معرف = txt> <button id = btn> إرسال </button> <script type = text/javaScript> var out = document.getElementById (Out) ؛ ) ؛} false) ؛؛ res = معالج (event.data) ؛ }
يمكن ملاحظة أن thread1.js لا يحتوي على ملف يسمى tools.js ، ولكنه يستورد ملف JS من خلال eSporscripts () ، وبعد ذلك يمكنك استدعاء الطريقة المكشوفة.
ثانياً ، فئة عمال المشاركةيكمن جوهر المشترك في المشاركة.
أمثلة مباشرة للمناقشة.
كيفية استخدام واحد://main.html <!!!! مشترك (مشترك. js ') ؛ Data ؛} </script> </body> </html> // servent.jsonconnect = function (e) {var port = E.Ports [0] ؛
هذا مثال من W3C.
<! '' shared.js ') ؛ ، false) ؛؛ E.Ports [0] ؛ E.Target.PostMessage ('pong') ؛
الطريقة الأولى هي الاستماع إلى حدث الرسائل باستخدام مقبض الحدث. إنهم يختلفون عن العامل.
فكيف يشارك المشاركين البيانات؟ يرجى إلقاء نظرة على المثال التالي.
// Main1 و Main2 هما <! = text name = id = txt> <button id = get> get </utton> <button id = set> setton> <script> var worker = new Shared Worker ('shared.js') ؛ (GET ') ؛ ) {log.innertext = e.data ؛} ، false) ؛ value) ؛} false) ؛ ) {var port = e.ports [0] ؛ }}
التحليل هنا ، ندخل البيانات في مربع النص الخاص بـ main1.html ، انقر فوق SET ، ثم انقر فوق طريقة GET في MAIN2.HTML للحصول على البيانات التي حددناها في MAIN1.HTML الحالات المفردة ، تمامًا مثل الفئة الثابتة في Java ، لا مهمة كم عدد الأخبار ، يوجد في الواقع واحدة فقط ، بحيث يمكن لخيوطنا المختلفة مشاركة البيانات في العاملين المشتركين. إليكم الصورة.
أخيرًا ، دعونا نلخص ، العامل والعامل المشترك ليس لديهم معلق ، أي نقل العمل أمام المسرح للقيام بذلك وراء الكواليس دون توقف العمل أمام المسرح. إنها عشر دقائق على المسرح وعشر سنوات. ضع النزول ، فقط أفضل جانب من أفضل جانبك على المسرح ، عشر دقائق كافية!