دروس HTML

صفحة HTML الرئيسية مقدمة HTML محرري HTML أساسيات HTML عناصر HTML سمات HTML عناوين HTML فقرات HTML أنماط HTML تنسيق HTML اقتباسات HTML تعليقات HTML ألوان HTML HTML CSS روابط HTML صور HTML رمز HTML المفضل جداول HTML قوائم HTML كتلة HTML ومضمنة فئات HTML معرف HTML إطارات HTML IFrame HTML جافا سكريبت مسارات ملفات HTML رئيس HTML تنسيق HTML مستجيب لـ HTML HTML Computercode دلالات HTML دليل نمط HTML كيانات HTML رموز HTML HTML Emojis أحرف HTML تشفير عنوان URL لـ HTML HTML مقابل XHTML

نماذج HTML

نماذج HTML سمات نموذج HTML عناصر نموذج HTML أنواع مدخلات HTML سمات إدخال HTML سمات نموذج إدخال HTML

رسومات HTML

قماش HTML HTML SVG

وسائط HTML

وسائط HTML فيديو HTML صوت HTML المكونات الإضافية لـ HTML HTML يوتيوب

واجهات برمجة تطبيقات HTML

HTML تحديد الموقع الجغرافي سحب / إسقاط HTML تخزين الويب HTML عمال ويب HTML HTML SSE

أمثلة HTML

أمثلة HTML مسابقة HTML تمارين HTML شهادة HTML ملخص HTML ولوجية HTML

مراجع HTML

قائمة علامات HTML سمات HTML سمات HTML العامة دعم متصفح HTML أحداث HTML ألوان HTML قماش HTML صوت / فيديو HTML أنماط HTML مجموعات أحرف HTML تشفير عنوان URL لـ HTML أكواد HTML لانج رسائل HTTP طرق HTTP PX to EM Converter اختصارات لوحة المفاتيح

HTML Web Workers API


عامل الويب هو جافا سكريبت يعمل في الخلفية ، دون التأثير على أداء الصفحة.


ما هو عامل الويب؟

عند تنفيذ البرامج النصية في صفحة HTML ، تصبح الصفحة غير مستجيبة حتى ينتهي البرنامج النصي.

عامل الويب هو جافا سكريبت يتم تشغيله في الخلفية ، بشكل مستقل عن البرامج النصية الأخرى ، دون التأثير على أداء الصفحة. يمكنك الاستمرار في فعل ما تريد: النقر واختيار الأشياء وما إلى ذلك ، بينما يعمل عامل الويب في الخلفية.


دعم المتصفح

تحدد الأرقام الواردة في الجدول إصدار المستعرض الأول الذي يدعم Web Workers بشكل كامل.

API
Web Workers 4.0 10.0 3.5 4.0 11.5

مثال على عمال ويب HTML

ينشئ المثال أدناه عامل ويب بسيطًا يقوم بحساب الأرقام في الخلفية:

مثال

Count numbers:


تحقق من دعم Web Worker

قبل إنشاء عامل ويب ، تحقق مما إذا كان متصفح المستخدم يدعمه:

if (typeof(Worker) !== "undefined") {
  // Yes! Web worker support!
  // Some code.....
} else {
  // Sorry! No Web Worker support..
}


قم بإنشاء ملف Web Worker

الآن ، لنقم بإنشاء عامل الويب الخاص بنا في JavaScript خارجي.

هنا ، نقوم بإنشاء برنامج نصي مهم. يتم تخزين النص البرمجي في ملف "demo_workers.js":

var i = 0;

function timedCount() {
  i = i + 1;
  postMessage(i);
  setTimeout("timedCount()",500);
}

timedCount();

الجزء المهم من الكود أعلاه هو postMessage()الطريقة - التي تُستخدم لإرسال رسالة مرة أخرى إلى صفحة HTML.

ملاحظة: عادة لا يتم استخدام العاملين على الويب لمثل هذه البرامج النصية البسيطة ، ولكن لمزيد من المهام المكثفة لوحدة المعالجة المركزية.


قم بإنشاء كائن Web Worker

الآن بعد أن أصبح لدينا ملف Web worker ، نحتاج إلى تسميته من صفحة HTML.

تتحقق الأسطر التالية مما إذا كان العامل موجودًا بالفعل ، إذا لم يكن كذلك - يقوم بإنشاء كائن عامل ويب جديد وتشغيل الكود في "demo_workers.js":

if (typeof(w) == "undefined") {
  w = new Worker("demo_workers.js");
}

ثم يمكننا إرسال واستقبال الرسائل من عامل الويب.

أضف مستمع حدث "onmessage" إلى عامل الويب.

w.onmessage = function(event){
  document.getElementById("result").innerHTML = event.data;
};

عندما ينشر عامل الويب رسالة ، يتم تنفيذ الكود داخل مستمع الحدث. يتم تخزين البيانات من عامل الويب في event.data.


إنهاء عامل الويب

عندما يتم إنشاء كائن عامل الويب ، فإنه سيستمر في الاستماع للرسائل (حتى بعد انتهاء النص الخارجي) حتى يتم إنهاؤه.

لإنهاء عامل الويب ، والحصول على موارد متصفح / كمبيوتر مجانية ، استخدم terminate()الطريقة:

w.terminate();

أعد استخدام Web Worker

إذا قمت بتعيين المتغير العامل على غير محدد ، بعد أن تم إنهاؤه ، يمكنك إعادة استخدام الكود:

w = undefined;

مثال على كود عامل الويب الكامل

لقد رأينا بالفعل رمز العامل في ملف .js. فيما يلي رمز صفحة HTML:

مثال

<!DOCTYPE html>
<html>
<body>

<p>Count numbers: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button>
<button onclick="stopWorker()">Stop Worker</button>

<script>
var w;

function startWorker() {
  if (typeof(Worker) !== "undefined") {
    if (typeof(w) == "undefined") {
      w = new Worker("demo_workers.js");
    }
    w.onmessage = function(event) {
      document.getElementById("result").innerHTML = event.data;
    };
  } else {
    document.getElementById("result").innerHTML = "Sorry! No Web Worker support.";
  }
}

function stopWorker() {
  w.terminate();
  w = undefined;
}
</script>

</body>
</html>

عمال الويب و DOM

نظرًا لأن العاملين على الويب في ملفات خارجية ، فلا يمكنهم الوصول إلى كائنات JavaScript التالية:

  • كائن النافذة
  • كائن المستند
  • الكائن الأصل