HTML5+-+Интернет+работници+(web+workers)

//Претходно://Aпликациски кеш //Следно//: SSE // Почетoк: // HTML5 Tуторијал

Веб работник е извршување на JavaScript во позадина, без притоа да влијае во перформансите на страната.

Што е Интернет работник?
Кога се извршуваат скрипти во HTML страна, страната станува нефункционална се додека тие скриптите не бидат завршени. Интернет работник е JavaScript (Java скрипта) која работи во позадина, независна од други скрипти, притоа без да ги намалува перформансите на страната. Можете да продолжите да правите што сакате (кликнување, селектирање и друго), додека интернет работникот работи во позадина.

Примери за Интернет Работници
Подолу наведениот пример креира едноставен Интернет работник кој ги брои броевите во позадина:

<!DOCTYPE html> Count numbers: Start Worker Stop Worker 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, your browser does not support Web Workers..."; } }  function stopWorker { w.terminate; }

Проверка на поддршката за Интернет работник
Пред да креирате Интернет работник, проверете дали корисничкиот прелистувач го поддржува истиот:

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

Креирање на Интернет работник Датотека
Сега ќе креираме наш Интернет работник во надворешна JavaScript. Тука, ние креираме скрипта која брои. Скриптата е зачувана во "demo_workers.js" датотеката: var i=0; function timedCount { i=i+1; postMessage(i); setTimeout("timedCount",500); } timedCount;

Важен дел од горе наведениот код е postMessage методот, кој се користи за праќање пораки назад до HTML страната.
 * Забелешка:** Вообичаено Интернет работниците не се користат за толку едноставни скрипти, туку за поинтензивни процесорски задачи.

Креирање на Интернет работник Објект
Сега кога ја имаме датотеката - Интернет работник, потребно е да ја повикаме од 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;

Пример за целосен код на Интернет Работник
Досега го имаме видено кодот за Работник во .js датотека. Подолу е кодот за HTML страна:

Пример
<!DOCTYPE html> Count numbers: Start Worker Stop Worker 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, your browser does not support Web Workers..."; } }  function stopWorker { w.terminate; }

Интернет Работници и DOM
Откако Интернет Работниците ќе се најдат во надворешните датотеки, тие немаат пристап до следните JavaScript Објекти:
 * Прозорец објект (The window object);
 * Документ објект (The document object);
 * Родител објект (The parent object).

//Претходно:// Aпликациски кеш // Следно // : SSE // Почетoк: // HTML5 Tуторијал