HTML5 ? ???
HTML5 ? ??
? ??? ??????? ???? JavaScript?? ??? ??? ??? ?? ????.
?????
HTML ????? ????? ??? ? ????? ??? ??? ??? ??? ???? ????.
? ??? ?? ????? ????? ??????? ???? JavaScript?? ??? ??? ??? ??? ????. ? ???? ??????? ???? ?? ??, ?? ? ??? ??? ??? ? ????.
????? Web Worker? ????? ??
Web Worker? ???? ?? ???? ????? ?? ????? ?????.
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 ????? ???? ???. /p>
?? ??? ???? ????? ??? ????, ???? ?? ?? ? ? ??? ??? ??? ?? "demo_workers.js"?? ??? ?????: /p>
if(typeof(w)=="undefined") { w=new Worker("demo_workers.js"); }
?? ?? ? ?????? ???? ??? ?? ? ????.
? ???? "onmessage" ??? ???? ?????.
w.onmessage=function(event){
document.getElementById("result").innerHTML=event.data ;
};
<p web="" Worker=""? ???? ???? ??? ???? ??? ?????. event.data=""?? ="" event.data=""? ???? ???? ????.
Web Worker ??
? ??? ??? ???? ??? ??? (?? ????? ??? ???) ???? ???? ?????.
? ???? ???? ????/??? ???? ????? quit() ???? ??????:
w.terminate();
?? Web Worker ?? ??
??? .js ???? Worker ??? ??????. HTML ???? ??? ??? ????.
?
<!DOCTYPE html> <html> <body> <p>計數(shù): <output id="result"></output></p> <button onclick="startWorker()">開始計數(shù)</button> <button onclick="stopWorker()">停止計數(shù)</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>