zoukankan      html  css  js  c++  java
  • HTML5 Web Workers使用

    1.什么是Web Worker?

    web worker 是运行在后台的 JavaScript,不会影响页面的性能。(类似于c#后台线程?)

    2.如何使用

    计数器例子:

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <meta charset="utf-8" />
    </head>
    <body>
        <p>计数<output id="result"></output></p>
        <input type="button" value="开始" onclick="start()" />
        <input type="button" value="结束" onclick="stop()"/>
    </body>
    </html>
    <script type="text/javascript">
        var w;
        function start()
        {
            if (typeof (Worker)!="undefined") //判断浏览器是否支持Worker功能
            {
                if (typeof (w) == "undefined")
                {
                    w = new Worker("/Scripts/Worker.js");//加载一个自定义的js
                }
                w.onmessage = function (event)//用于返回消息
                {
                    document.getElementById("result").innerHTML = event.data;//消息中的数据
                }
            } else
            {
                document.getElementById("result").innerHTML = "不支持Worker";
            }
        }
    
        function stop()
        {
            w.terminate();//此方法用于结束worker
            w = undefined;
    
        }
    </script>
    Worker.js(做一个线程自动加数)
    var i = 0;
    
    function timedCount() {
        i = i + 1;
        postMessage(i);//用于worker 发消息
        setTimeout("timedCount()", 500);
    }
    
    timedCount();

    如果worker为外部文件,像上面那样引用别的js,无法使用html中的window、document、parent对象

  • 相关阅读:
    网页中添加下划线的方法汇总及优缺点
    git备注
    微信小程序封装年月日时分组件
    微信小程序底部弹窗动画
    微信小程序返回上一页的方法并传参
    微信小程序组件封装
    taro中子父传值
    taro初识一
    reactjs中使用高德地图计算两个经纬度之间的距离
    vue中使用scss
  • 原文地址:https://www.cnblogs.com/daimaxuejia/p/12468727.html
Copyright © 2011-2022 走看看