‎‎وب گارگرWeb Worker API -‎

Previous >    <Next  

‎وب كارگر يك جاوااسكريپت است كه درپس زمينه اجرا ميشود، بدون اينكه برعملكرد صفحه تاثير ‎بگذارد.

‎‎وب كارگر چيست‎ What is a Web Workers?‎ -‎

‎هنگام اجراي اسكريپت ها در يك صفحهHTML صفحه تازماني كه درحال اجراست واجراي آن تمام ‎نشده، پاسخگوي اسكريپت نمي باشد .اما موارد ديگرصفحه فعال است.

‎وب كارگر يك جاوااسكريپت است كه مستقل از سايراسكريپت ها در پس زمين اجرا ميشود، بدون اينكه ‎در حين اجرا برعملكرد صفحه تاثير بگذارد .در حاليكه آن اجرا ميشود، مي توانيد به انجام هركاري ‎در صفحه ادامه دهيد .مثال كيك كردن، انتخاب چيزها وغيره.

‎‎پشتيباني مرورگرBrowser Support -‎

‎‎اعداد مشخص شده در جدول اولين نسخه مرورگراست كه ازوب كارگر بطور كامل پشتيباني ميكند.

Chorome Edge Firefox Safari Opera
‎4
Jan 2010‎
‎10
Sep2012
‎3.5
Jun 2009
‎4
Jun 2009
‎11.5
Jun 2011

‎مثال ـ مثال وب كارگر. ‎(Web Worker)‎ ‎در اين مثال وب كارگر اعداد را مي شمارد.

Count numbers:

--(go to editor for change code and run)

‎‎بررسي پشتيباني وب كارگرCheck Web Worker Support -‎

‎‎قبل از اينكه وب كارگر ايجاد نمائيد، پشتيباني مرورگرتان را كنترل نمائيد:

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

‎Create a Web Worker File‎

‎‎ايجاد فايل اسكريپت وب كارگر

‎اكنون بيائيد اسكريپت وب كاركر را در فايل بعنوان اسكريپت خارجي ايجاد كنيد .اين اسكريپت در ‎‎"demo_workers.js‎"‎‎ذخيره ميشود .

let i = 0;

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

timedCount();

‎بخش مهم كد بالا متد‎postMessage( )‎ است كه براي ارسال پيام به صفحه HTML‎استفاده ميشود .

‎توجه ـ معمولا وب كارگر براي چنين اسكريپت هاي ساده استفاده نمي شود، بلكه براي كارهاي فشرده ‎فشرده ترCPU استفاده ميگردند .

‎‎ايجاد شئ وب كارگرCreate a Web worker Object -‎

‎‎فايل‎‎"demo_workers.js‎"‎ ايجاد شده است، لازم است از طريق صفحه فراخوان شود .

‎خطوط زير بررسي ميكند كه وب كارگر از قبل وجود داشته باشد، وگر نه يك شئ وب كار جديد ايجاد ‎و كد را در فايل فوق اجرا ميكند.

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

‎سپس مي توانيم ازوب كارگر پيام ارسال و دريافت كنيم .براي اينكار يك شنونده رويداد‎"onmessag‎" ‎را به آن اضافه ميكنيم:

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

‎هنگاميكه وب كارگر پيامي را ارسال ميكند ، كد داخل شونده رويداد اجرا ميشود .داده هاي ‎وب كارگر درevent.data ذخيره ميشود .

‎‎پايان وب كارگر

‎هنگامي كه يك شئ وب كارگر ايجاد ميشود، گوش دادن به پيام ها حتي پس از اتمام اسكريپت خارجي ‎ادامه ميدهد .اين كار تازماني كه پايان يابد تداوم دارد.

‎براي خاتمه دادن به وب كارگر ومنابع رايگان مرورگر‎/‎كامپيوتر از متد ‎terminate()‎‎‎استفاده ميكنيم :

‎‎w.terminate()‎:‎‎

‎‎استفاده مجدد وب كارگرReuse the Web Worker -‎

‎اگر متغير وب كارگر يعني‎‎"w‎"‎ پس از پايان كار آن با مقدار undefined ،تنظيم شود ‎دوباره آن قابل استفاده ميباشد:

‎‎w=undefined:‎‎

‎Full Web Worker Example Code‎

‎‎برنامه كامل وب كارگر

‎‎مثال ـ كد كامل وب كارگر

<!DOCTYPE html>
<html>
<body>

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

<script>
let w;

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

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

</body>
</html>

--(go to editor for change code and run)

‎‎وب كارگر و دامWeb Worker and DOM -‎

‎چون كارگر وب در فايل خارجي‎(extennal file)‎ است ،به اشياء جاوااسكريپت زير ‎دسترسي ندارد:


Previous >    <Next