آيا مرورگر از Web Worker پشتيباني مي نماید؟

ساخت وبلاگ


Web Worker يک کد JavaScript میباشد که در پشت پرده، سوای اينکه تأثيري روی همت برگه داشته باشد، طراحی سایت در مشهد  برگزار می شود.
web worker چيست؟
وقتی که اسکريپت ها در صفحه ها HTML اجرا می‌گردد، تا زماني که اجراي اسکريپت کل نشود، برگه به درخواست هاي مخاطب جواب نمي دهد(unresponsive ).
Web Worker يک کد JavaScript میباشد که در پشت پرده، جدا از اسکريپت هاي ديگر فارغ از اينکه بر روي کارآيي و سعی شیت تاثيري داشته باشد برگزار می شود. با به کارگیری از اين متد مي اقتدار در حين اجراي اسکريپت ها، به طور عادي به عمل با شیت پرداخته و به کليک کردن و انجام ساير کارها متبوع خویش بپردازيد.
 
پشتيباني مرورگرها

مرورگرهاي Inteet Explorer 10, Firefox, Opera, Chrome, Safari متد Web Worker را پشتيباني مي نمایند.
 
نمونه Web Worker در HTML5
نمونه زير، يک Web Worker بی آلایش ايجاد می نماید که با کليک روي دکمه "Start Worker" استارت به شمارش اعداد مي نماید:
Count numbers: 


Start Worker 
Stop Worker
Note: Inteet Explorer 9 and earlier versions do not support Web Workers.

 

مشاهده سود
 
آيا مرورگر از Web Worker پشتيباني مي نماید؟
در مرحله نخستین بايد تحلیل کرد که آيا مرورگر ما از متد Web Worker پشتيباني مي نماید يا خير:
if(typeof(Worker) !== "undefined") {
    // Yes! Web worker support!
    // Some code.....
} else {
    // Sorry! No Web Worker support..
}
 
ايجاد فايل Web Worker
در متد Web Worker کدهاي JavaScript گزینه نظرمان را در يک فايل خارجي بنام "demo_workers.js" و در بيرون از برگه قرار مي دهيم.
کد زير يک کد بی آلایش JavaScript میباشد که فعالیت شمارش را انجام مي دهد و تنها تحت عنوان يک نمونه مطرح شده‌است:
var i = 0;
 
function timedCount() {
    i = i + 1;
    postMessage(i);
    setTimeout("timedCount()",500);
}
 
timedCount();
 
نصیب اصلی کد بالا متد postMessage() میباشد، که مقدار خروجي تابع را بصورت يک پيام به شیت ارسال مي نماید.
نکته : از Web Workerها به طور معمول براي کارهاي معمولی اي مانند نمونه بالا، استعمال نمي خواهد شد و بيشتر براي کارهايي که CPU زيادي مصرف مي نمایند، به کار گیری مي خواهد شد.
 
ايجاد يک شيء Web Worker
اینک که فولدر Web Worker را در چنگ داریم، بايد آن را از کاغذ HTML فراخواني کنيم.
Web Worker تحلیل می نماید که آيا يک شي Web Worker وجود داراست يا خير، آن‌گاه درصورتي که شي وجود نداشته باشد، يک مثال جديد ساخته و فايل "demo_workers.js" را اجرا مي نماید:
if(typeof(w) == "undefined") {
    w = new Worker("demo_workers.js");
}
در حال حاضر از طريق Web Worker مي توانيم پيام ها را دريافت و يا ارسال کنيم.
رويداد "onmessage" را به شيء Web Worker، اضافه مي کنيم:
 
w.onmessage = function(event){
    document.getElementById("result").innerHTML = event.data;
};
هنگامي که پاسخ از Web Worker برمي شود، رويداد "onmessage" صورت مي دهد و کد باطن آن برگزار می شود. داده ها برگشتي از Web Worker در event.data نگهداري مي گردد.
 
خاتمه دادن به يک Web Worker
هنگامی که شی ء Web Worker تولید می‌شود، تا زماني که به عمل آن خاتمه ندهيد، براي دريافت پيام هاي ارسالي گوش مي دهد. (حتي بعداز پايان اسکريپت خارجي)
برای آخر دادن به عمل Web Worker و ول کردن منابع مرورگر و کامپيوتر، از متد ()terminate به کار گیری کنيد:
w.terminate();
نمونه جامعی از Web Worker :

 

 
Count numbers: 


Start Worker 
Stop Worker

 

 

 


 
Web Worker و DOM
از آنجايي که Web Workerها در فايل هاي خارجي تعريف مي شوند، اشياء JavaScript زير نمي توانند به آن دسترسي داشته باشند:
شيء window
شيء document
شيء parent

مرجع مقالات رسمی طراحی سایت...
ما را در سایت مرجع مقالات رسمی طراحی سایت دنبال می کنید

برچسب : طراحی سایت در مشهد, نویسنده : علی پور web01 بازدید : 639 تاريخ : دوشنبه 1 دی 1399 ساعت: 21:03