ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

บทที่ 13 HTML5 Web Worker
   Web Worker คือ JavaScript ที่สามารถทำให้ script ทำงานหลายๆอย่างพร้อมกันได้ ซึ่งทำให้ผู้ใช้งานเว็บเพจได้ โดยไม่ต้องรอให้ JavaScript ทำงานเสร็จก่อน โดย web worker จะสั่งให้ JavaScript ทำงานโดยไม่กระทบกับงานอื่นๆ ด้วยเหตุนี้ ผู้พัฒนาจึงสามารถออกแบบหน้าเว็บไซต์ให้มีความซับซ้อนมากๆ ได้โดยไม่ต้องกังวลว่า เครื่องพีซีของผู้ใช้จะเกิดการสะดุดขณะที่มีการเลื่อนหน้าหรือเกิดการหน่วง ขณะที่กำลังมีการป้อนข้อมูลเหมือนอย่างเช่นในอดีต
   Web Worker ทำงานได้ดีกับทุกweb browser ยกเว้น IE  Internet Explorer ต้องเป็นเวอร์ชั่น 10 ขึ้นไป
ตัวอย่างเช่น

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

<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, your browser does not support Web Workers...";  }}
function stopWorker()
{ w.terminate();}
</script>
</body>
</html

คลิกเพื่อดูตัวอย่าง HTML5 Web Worker

คำอธิบาย
1.สำหรับตรวจสอบว่า web worker สามารถใช้กับบราวเซอร์ได้หรือไม่

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

2.สำหรับสร้างไฟล์ web worker บน external JavaScript
เช่นในตัวอย่างนี้คือการสร้างสคริปต์ให้นับ โดยค่อยๆเพิ่มๆทีละ 1 ซึ่งสคริปต์นี้จะบรรจุอยู่ในเดียวกับ "demo_workers.js" file:
***ตัวอย่างนี้ไม่สามารถดใช้ได้หากไม่สร้าง ไฟล์ "demo_workers.js" file: เสียก่อน

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

3.สำหรับสร้าง web worker object และรันโค๊ดบน "demo_workers.js":

if(typeof(w)=="undefined")
  {  w=new Worker("demo_workers.js");  } เราสามารถส่งและรับข้อความจาก web worker ด้วยการเพิ่ม "onmessage"
w.onmessage=function(event){
document.getElementById("result").innerHTML=event.data;};

4.สำหรับสร้าง terminate web worker (ตัวหยุดการทำงานของสคริปต์ที่กำลังรันอยู่บนหน้าเว็บไซต์)

w.terminate();


ข้อมูลอ้างอิง
http://www.w3schools.com

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
MOD_MTB_NEWS_RECENT
เข้าเฟสบุคไม่ได้
โดย บุคคลทั่วไป พ 23 ส.ค. 2017 6:52 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
8
พ 23 ส.ค. 2017 6:52 pm โดย บุคคลทั่วไป
Machine Learning คืออะไร
โดย nuattawoot พ 23 ส.ค. 2017 4:28 pm บอร์ด Share Knowledge
0
11
พ 23 ส.ค. 2017 4:28 pm โดย nuattawoot
Data Mining (ดาต้า ไมน์นิ่ง) เหมืองข้อมูล
โดย nuattawoot พ 23 ส.ค. 2017 3:15 pm บอร์ด Share Knowledge
0
9
พ 23 ส.ค. 2017 3:15 pm โดย nuattawoot
ผมแก้ไขไฟล์ Index.php ไม่ได้ครับ ใน Joomla
โดย Before Dong อ 22 ส.ค. 2017 4:04 pm บอร์ด Joomla Development
2
21
อ 22 ส.ค. 2017 4:04 pm โดย Before Dong
mdfiles version 1.0.31 สร้างแบบฟอร์มเอกสาร แนบไฟล์ไม่ได้ครับ
โดย Chinamon Sang อ 22 ส.ค. 2017 9:56 am บอร์ด Joomla Development
0
15
อ 22 ส.ค. 2017 9:56 am โดย Chinamon Sang
สอบถามวิธีการย้ายตำแหน่งปุ่ม input file ใน JavaScript
โดย Ik Kat จ 21 ส.ค. 2017 3:36 pm บอร์ด JavaScript & Jquery Ajax
0
24
จ 21 ส.ค. 2017 3:36 pm โดย Ik Kat
การเขียนโปรแกรมภาษาซี 5 ฟังก์ชัน
โดย Tong Ratika จ 21 ส.ค. 2017 9:59 am บอร์ด Programming - PHP
1
27
จ 21 ส.ค. 2017 9:59 am โดย P'Eak
เข้าเฟสไม่ได้
โดย สิ่งเดียวคือ เธอน่ะ อ 20 ส.ค. 2017 8:09 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
25
อ 20 ส.ค. 2017 8:09 pm โดย สิ่งเดียวคือ เธอน่ะ
ศัพท์ปัญญาประดิษฐ์ (AI) ที่ ที่ทางราชบัณฑิตยสถาน
โดย Oh_nO อ 20 ส.ค. 2017 3:58 am บอร์ด Microsoft Office Knowledge & line & Etc
0
31
อ 20 ส.ค. 2017 3:58 am โดย Oh_nO
การใช้คำสั่ง find_element_by_tag_name ของ selenium ในการเปิด tag ใหม่ของเว็บไซต์
โดย บัวบุญ จันทะโคตร ส 19 ส.ค. 2017 6:15 pm บอร์ด Python Knowledge
0
20
ส 19 ส.ค. 2017 6:15 pm โดย บัวบุญ จันทะโคตร
ช่วยด้วยครับ dreamweaver เมนูตารางด้านซ้ายชอบเลื่อนลงเมื่อใส่รูปหรือข้อความด้านขวา
โดย cmchamping ส 19 ส.ค. 2017 4:38 pm บอร์ด Programming - PHP
0
25
ส 19 ส.ค. 2017 4:38 pm โดย cmchamping
ใช้โปรแกรม dreamweaver สร้างเว็บ ตารางเมนู ชอบเลื่
โดย cmchamping ส 19 ส.ค. 2017 4:27 pm บอร์ด Programming - PHP
1
24
ส 19 ส.ค. 2017 4:27 pm โดย mindphp
อยากรู้ วิธีดู... หรือเอา รูป logo .... จาก หน้าเว็บที่กำหนด path รูปไว้ใน css
โดย Before Dong ส 19 ส.ค. 2017 4:14 pm บอร์ด HTML CSS
2
36
ส 19 ส.ค. 2017 4:14 pm โดย Before Dong
Css ปรับ Logo บอร์ด phpbbthailand.com
โดย mindphp ส 19 ส.ค. 2017 3:54 pm บอร์ด phpbbthailand.com
0
4
ส 19 ส.ค. 2017 3:54 pm โดย mindphp
อัพเดดความคืบหน้า
โดย mindphp ส 19 ส.ค. 2017 3:52 pm บอร์ด phpbbthailand.com
0
2
ส 19 ส.ค. 2017 3:52 pm โดย mindphp
ช่วยบอกลิงค์ที่โหลด MJ Upgrad joomla V1.5 เป็น V3.7
โดย บุคคลทั่วไป ส 19 ส.ค. 2017 10:24 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
2
38
ส 19 ส.ค. 2017 10:24 am โดย บุคคลทั่วไป
การนำเอา regex มาใช้ใน selenium
โดย บัวบุญ จันทะโคตร ศ 18 ส.ค. 2017 5:39 pm บอร์ด Python Knowledge
0
21
ศ 18 ส.ค. 2017 5:39 pm โดย บัวบุญ จันทะโคตร
อยากทราบแนวทางการสร้าง selenium ให้คลิ๊กลิ้งค์ต่อจากหน้า text link ที่คลิ๊กมา นั้นจะต้องเช่นไรครับ
โดย บัวบุญ จันทะโคตร ศ 18 ส.ค. 2017 4:33 pm บอร์ด Programming - C/C++ & java & Python
0
32
ศ 18 ส.ค. 2017 4:33 pm โดย บัวบุญ จันทะโคตร
ช่วยหน่อยครับ mdfile ไม่สามารถสร้าง categiries ได้
โดย Chinamon Sang ศ 18 ส.ค. 2017 9:09 am บอร์ด Joomla Development
6
65
ศ 18 ส.ค. 2017 9:09 am โดย Chinamon Sang
Joomla ออกเวอร์ชั่น 3.7.5 Fix Bug ติดตั้ง Joomla ไม่ได้เมือใช้ remote ฐานข้อมูล
โดย mindphp ศ 18 ส.ค. 2017 3:23 am บอร์ด PHP News
1
35
ศ 18 ส.ค. 2017 3:23 am โดย toonytoony2004