Summary
- أصدر W3C أول مسودة عمل لـWeb Workers في 23 أبريل 2009. تستطيع الصفحة تشغيل برنامج في بيئة تنفيذ منفصلة ومتوازية والتنسيق معه بتبادل الرسائل.
- يبحث العامل في مثال المسودة عن الأعداد الأولية ويرسل كل نتيجة جديدة إلى الصفحة، فتحدّث العرض وتظل قادرة على التعامل مع نقرات المستخدم.
يظهر الزر على الشاشة واضحاً. تنقره فلا يحدث شيء. تعيد النقر، ثم تبدأ الشكوك: هل سمع المتصفح؟ هل تعطّل؟ بعد مدة تتحرك الصفحة دفعة واحدة، مثل موظف عاد من المخزن حاملاً كل الملفات التي طلبها الزبائن أثناء غيابه. الحساب ربما كان صحيحاً؛ شباك الاستقبال غاب عن العمل.
تناولت مسودة Web Workers التي أصدرها W3C في 23 أبريل 2009 هذا المأزق مباشرة. عرّفت طريقة لتشغيل برامج خلفية مستقلة عن البرامج التي ترد على النقر والتفاعل. اختارت مثالاً بسيطاً: البحث عن الأعداد الأولية. تبدأ الصفحة عاملاً، ويواصل العامل الحساب، ثم يرسل آخر عدد وجده. تعرض الصفحة النتيجة وتتابع استقبال أوامر القارئ. يقف شخص عند الشباك بينما تجري الحسابات في الداخل.
للتقسيم خطوات محددة. تنشئ الصفحة Worker بعنوان ملف برنامج. يشغله المتصفح في بيئة موازية منفصلة. يستخدم الجانبان postMessage ومستقبلات الرسائل لتبادل البيانات. يركّز العامل على البحث، وتبقى مهمة العرض لدى الصفحة. حين يصل عدد أولي جديد، يغيّر برنامج الصفحة النص الظاهر. يمر الناتج من باب الرسائل قبل أن يصبح شيئاً يراه المستخدم.
وصفت مسودة ديسمبر 2009 هذا العمل بأنه شبيه بالخيوط التنفيذية، مع الرسائل وسيلةً للتنسيق. يحدد الباب بين الجانبين المسؤوليات: الصفحة تطلب، والعامل يرسل، والصفحة تقرر كيف تستعمل ما وصل. إذا انتقل القارئ إلى مهمة أخرى قبل عودة الجواب، يصبح عرض النتيجة القديمة قراراً على الصفحة اتخاذه. الاجتهاد في الحساب لا يمنح الناتج حق اقتحام الشاشة متأخراً.
تكشف الأعداد الأولية سبب توقف الواجهة من دون أعذار جانبية. لا يوجد خادم بعيد ينتظر الرد ولا وصلة بطيئة. حلقة حسابية طويلة تحتل وقت المكان الذي كان يجب أن يستجيب للنقرات. بنقلها إلى العامل، تستطيع الصفحة الاستمرار في الإصغاء، وتحدّث الرقم عندما تصل رسالة. يرى المستخدم تقدماً بدل أن يحدق في زر يبدو في إضراب صامت.
لكن تشغيل عامل له كلفة. نبهت مسودة أواخر 2009 إلى وقت البدء والذاكرة التي يستهلكها كل عامل. وقدمت مثالاً ساخراً على الإفراط: عامل مستقل لكل بكسل في صورة من أربعة ملايين بكسل. استدعاء أربعة ملايين مساعد لا يسرّع المكتب؛ سيشغل الجميع بالبحث عن مقاعد. يجب أن تكون المهمة الموكلة ذات حجم يستحق وجود عامل.
مع تطور النص، تميّزت أنواع المساعدين. أبقت لقطة التوصية المرشحة لعام 2012 على العامل المخصص والعامل المشترك. يتواصل المخصص مع منشئه عبر قناة ضمنية؛ ويستقبل المشترك اتصالات من أكثر من سياق من الأصل نفسه عبر منافذ. شرحت مسودة 2015 إنشاء Worker واستقبال onmessage وإرسال postMessage ومنفذ MessagePort الصريح في العامل المشترك. يحتاج كل مكتب خلفي إلى عنوان يعود منه التقرير.
هذا حد يتعلق بمكان تنفيذ العمل. وللمتصفح حدود أخرى تحدد أين تُحفظ البيانات بحسب النافذة والأصل. قد تحتاج الصفحة إلى حفظ اختيار المستخدم، وإلى حساب ثقيل مبني على ذلك الاختيار. الرسائل تربط الحساب بالواجهة. لكل عمل مكانه، وللشخص أمام الشاشة حق معرفة ما حدث حين وصلت النتيجة.
يوثق سجل منشورات W3C انتقال النص من مسودة 2009 إلى مرحلتي 2012 و2015. بقي مثال الأعداد الأولية مفهوماً لأن سؤاله إنساني: هل يستطيع المتصفح التفكير ومواصلة الاستماع؟ وضع الحساب في الخلف وأبقى الجواب في الواجهة.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات





