HTML5のWeb Worker

HTML5のWeb Worker

Web Worker简述

web worker 是运行在后台的 JavaScript,不会影响页面的性能。

使用步骤

1> 检查浏览器是否支持Web Worker

if (typeof Worker != "undefined") {
    // support    
} else {
   // your browser does not support 
}

2>创建Web Worker对象,执行后台任务

if (typeof worker == "undefined") {
    worker = new Worker("task.js");
}
worker.onmessage = function(event) {
    message = event.data;
    detailSpan.innerHTML = message;
};

3> 终止Web Woker

 function terminate() {
    worker.terminate();
    worker = undefined;
 }

实例

使用按钮控制后台执行任务,html代码如下:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <noscript>Your browser does not support JavaScript pluin</noscript>
    <script type="text/javascript">
        var worker;
        var message = "";

        function start() {
            var detailSpan = document.querySelector("#detail");
            if (typeof Worker != "undefined") {
                if (typeof worker == "undefined") {
                    worker = new Worker("task.js");
                }
                worker.onmessage = function(event) {
                    message = event.data;
                    detailSpan.innerHTML = message;
                };
            } else {
                message = "Sorry, your browser does not support web workers.";
                detailSpan.innerHTML = message;
            }
        }
        function terminate() {
            worker.terminate();
            worker = undefined;
        }
    </script>
    <style type="text/css">
        #status {
            width: 600px;
            height: 200px;
            border:#CCDD66 1px solid;
            margin:0 auto;
        }
        #btns {
            margin-top: 20px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div id="status">
        <h3>status</h3>
        <span id="detail"></span>
    </div>
    <div id="btns">
        <button type="button" onclick="start()">Start</button>&nbsp;
        <button type="button" onclick="terminate()">Terminate</button>
    </div>
</body>
</html>

task.js表示后台执行任务,代码如下:

var indexNumber = 0;

function timeCount() {
    indexNumber += 1;
    postMessage(indexNumber);
    setTimeout("timeCount()", 500);
}

timeCount();

联系我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值