HTML Web Workers(Вэб ажилчид)

1 min read

Вэб ажилчин бол хуудасны гүйцэтгэлд нөлөөлөхгүйгээр цаана нь ажилладаг JavaScript юм.

Вэб Ажилчин гэж юу вэ? #

HTML хуудсан дахь скриптүүдийг гүйцэтгэх үед скрипт дуустал хуудас хариу өгөхгүй болно.

Вэб ажилтан гэдэг нь хуудасны гүйцэтгэлд нөлөөлөхгүйгээр бусад скриптээс үл хамааран арын дэвсгэр дээр ажилладаг JavaScript юм. Та хүссэн зүйлээ үргэлжлүүлэн хийж болно: вэб ажиллагч цаана нь ажиллаж байх үед товших, юм сонгох гэх мэт.


Хөтөчийн дэмжлэг #

API chrome internet explorer mozila firfox safari opera
Web Workers 4.0 10.0 3.5 4.0 11.5

HTML вэб ажилчдын жишээ #

Доорх жишээ нь арын дэвсгэр дээр тоонуудыг тоолох энгийн вэб ажилчдыг бий болгодог.

Count numbers:

Вэб ажилтны дэмжлэгийг шалгана уу #

Вэб ажилчин үүсгэхээсээ өмнө хэрэглэгчийн хөтөч үүнийг дэмжиж байгаа эсэхийг шалгана уу.

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 хуудсанд мессеж илгээхэд ашигладаг.

Тэмдэглэл: Ер нь вэб ажилчдыг ийм энгийн скриптэд ашигладаггүй, харин илүү их CPU шаарддаг ажилд ашигладаг.

Вэб ажилчин объект үүсгэх #

Вэб ажилчин файлтай болсон тул 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 = undefined;

Бүрэн вэб ажилтны жишээ код #

.Js файл дахь Worker кодыг бид аль хэдийн харсан. Доорх 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 объектуудад хандах эрхгүй байна.

  • Цонхны объект
  • Баримт бичгийн объект
  • Эцэг эхийн объект

Powered by BetterDocs

Leave a Reply