وئب ورکر آپی

ویب وورکر پس منظر میں چلنے والا جاوا اسکریپٹ ہے، جو صفح کی کارکردگی پر اثر نہیں دیتا۔

ویب وورکر کیا ہے؟

HTML صفح میں اسکریپٹ کو چلانے کے دوران، صفح اسکریپٹ مکمل ہونے تک جواب دہی نہیں دیتا۔

ویب وورکر پس منظر میں چلنے والا جاوا اسکریپٹ ہے، جو دیگر اسکریپٹ سے مستقل ہوتا ہے اور صفح کی کارکردگی پر اثر نہیں دیتا۔ آپ کسی چیز کا بھی کرسکتے ہیں: کلک کریں، مطلب کا انتخاب کریں وغیرہ، ساتھ ہی ویب وورکر پس منظر میں چل رہا ہوگا。

براوزر پشتیبانی

موجودہ جدول میں دیئے گئے اعداد وارقام، پہلے وائب وورکر پشتیبانی کرنے والے براوزر کی نسلیں کا حوالہ دیتی ہیں:

کروم آئی ای فائر فاکس سافری آپریا
کروم 4 آئی ای 10 فائر فاکس 3.5 سافری 4 آپریا 11.5
2010 جنوری 2012 ستمبر 2009 جون 2009 جون 2011 جون

ویب وورکر نمونہ

درج ذیل مثال ایک سادے ویب وورکر کا قیام کرتا ہے، جو پچھلے درج کاریوں میں ریلیز کرتا ہے:

مثال

شمارش:

نفس خود سے کوشا جائیں

ویب وورکر براوزر جانچ

ویب وورکر بنانے سے پہلے، استعمال کنندہ کا براوزر اس کا پشتیبانی کرتا ہے یا نہیں جانچیں:

if (typeof(Worker) !== "undefined") {
  // بله! ویب وورکر پشتیبانی کی جاتی ہے!
  // کچھ کوڈ.....
}
  // معذرت، ویب وورکر پشتیبانی نہیں کی جاتی ہے ..
}

ایک ویب وورکر فایل بنائیں

حالا، بیایید Web Worker خود را در JavaScript خارجی ایجاد کنیم.

در اینجا، ما یک اسکریپت مهم ایجاد می‌کنیم. این اسکریپت در فایل "demo_workers.js" ذخیره می‌شود:

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

قسمت مهم کد بالا postMessage() روش - برای ارسال پیام به صفحه HTML استفاده می‌شود.

توضیح:معمولاً Web Worker برای این نوع اسکریپت‌های ساده استفاده نمی‌شود، بلکه برای وظایف CPU محوری استفاده می‌شود.

ایجاد شیء Web Worker

حالا که فایل Web Worker داریم، باید آن را از صفحه HTML فراخوانی کنیم.

این خط کد بررسی می‌کند که آیا worker موجود است یا خیر، اگر موجود نیست، یک شیء جدید Web Worker ایجاد می‌کند و کد در "demo_workers.js" را اجرا می‌کند:

اگر(ٹائپ آف(و) == "یونڈیفائنڈ") {
  و = نیو ورکر("demo_workers.js");
}

پس از آن می‌توانیم پیام‌ها را از Web Worker ارسال و دریافت کنیم.

یک شناسه‌دهنده رویداد "onmessage" به Web Worker اضافه کنید.

w.onmessage = function(event){
  ڈاکومن.ایگدی بیٹ ("ریزآلت").اینرلیچر = ایونٹ.ڈیٹا;
};

وقتی که Web Worker پیامی منتشر می‌کند، کد در شناسه‌دهنده رویداد اجرا می‌شود. داده‌های Web Worker در event.data ذخیره می‌شود.

پایان دادن به Web Worker

وقتی که شیء Web Worker ایجاد می‌شود، آن ادامه دارد تا به دنبال پیام‌ها باشد (حتی پس از اتمام اسکریپت‌های خارجی) تا زمانی که پایان یابد.

برای پایان دادن به Web Worker و آزاد کردن منابع مرورگر/کامپیوتر، از terminate() روش:

و.ٹرمنیٹی();

استفاده مجدد Web Worker

اگر متغیر worker را به undefined تنظیم کنید، می‌توانید از کد زیر برای استفاده مجدد پس از اتمام آن استفاده کنید:

و = یونڈیفائنڈ;

کد کامل مثال Web Worker

ما کد Worker را در فایل .js دیده‌ایم. در اینجا کد صفحه HTML است:

مثال

<!DOCTYPE html>
<html>
<body>
<p>شمارش اعداد: <output id="result"></output></p>
<button onclick="startWorker()">شروع کارگر</button>
<button onclick="اسٹاپورکر()">ورکر متوقف کریں</button>
<script>
لیٹ و;
فونکشن اسٹارٹورکر() {
  اگر(ٹائپ آف(و) == "یونڈیفائنڈ") {
    و = نیو ورکر("demo_workers.js");
  }
  و.انمنسج = فونکشن(ایونٹ) {
    ڈاکومن.ایگدی بیٹ ("ریزآلت").اینرلیچر = ایونٹ.ڈیٹا;
  };
}
فونکشن اسٹاپورکر() {
  و.ٹرمنیٹی();
  و = یونڈیفائنڈ;
}
</script>
</body>
</html>

نفس خود سے کوشا جائیں

وایب ورکر اور ڈ او ایم

چونکہ وایب ورکر بیرونی فائل میں واقع ہوتا ہے، لہذا وہ مندرجہ ذیل جسٹا اسکریپٹ آؤٹ پوائنٹ تک رسائی نہیں حاصل کرسکتا:

  • ویندو آؤٹ پوائنٹ
  • ڈاکومن آؤٹ پوائنٹ
  • پارنٹ آؤٹ پوائنٹ