zoukankan      html  css  js  c++  java
  • Web Worker

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        
    <p>计数: <output id="result"></output></p>
    <button onclick="startWorker()">开始工作</button> 
    <button onclick="stopWorker()">停止工作</button>
    <p><strong>注意:</strong> Internet Explorer 9 及更早 IE 版本浏览器不支持 Web Workers.</p>
    <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 = "抱歉,你的浏览器不支持 Web Workers...";
        }
    }
    
    function stopWorker() 
    { 
        w.terminate();//停止工作
        w = undefined;
    }
    </script>
    
    </body>
    </html>
    <!-- var myWorker = new Worker(jsUrl, options);
            Worker 线程有一些自己的全局属性和方法。
    self.name: Worker 的名字。该属性只读,由构造函数指定。
    self.onmessage:指定message事件的监听函数。
    self.onmessageerror:指定 messageerror 事件的监听函数。发送的数据无法序列化成字符串时,会触发这个事件。
    self.close():关闭 Worker 线程。
    self.postMessage():向产生这个 Worker 线程发送消息。
    self.importScripts():加载 JS 脚本。
    Worker.terminate():立即终止 Worker 线程。 
                 WebSocket 事件
    以下是 WebSocket 对象的相关事件。假定我们使用了以上代码创建了 Socket 对象:
    事件      事件处理程序            描述
    open    Socket.onopen        连接建立时触发
    message    Socket.onmessage    客户端接收服务端数据时触发
    error    Socket.onerror        通信发生错误时触发
    close    Socket.onclose        连接关闭时触发
             webSocket 方法
    以下是 WebSocket 对象的相关方法。假定我们使用了以上代码创建了 Socket 对象:
    方法               描述
    Socket.send()    使用连接发送数据
    
    Socket.close()    关闭连接
    
    
    在这里,我们创建了计数脚本。该脚本存储于 "demo_workers.js" 文件中:
    
    var i=0;
    
    function timedCount()
    {
        i=i+1;
        postMessage(i);
        setTimeout("timedCount()",500);
    }
    
    timedCount();-->
  • 相关阅读:
    springboot发送邮件
    事务(进程 ID 64)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品(转)
    Java8中的Stream API基本用法总结
    java时间API,SpringBoot中应用LocalDateTime(日期转换)
    springboot配置自定义消息转换器
    全文检索lucene
    springmvc总结(配置传递参数去除前后空格、参数绑定时处理日期)
    vs2015 安装问题汇总
    浏览器快捷方式被修改的元凶
    使用天平3次,从12个乒乓球找唯一1个轻重未知的废品
  • 原文地址:https://www.cnblogs.com/wxy0715/p/12442115.html
Copyright © 2011-2022 走看看