• 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();-->
  • 相关阅读:
    hibernate反向工程 (eclipse和myeclipse)【转】
    让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别
    Struts Tags
    在Eclipse中配置tomcat
    The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
    如何将maven项目导入myeclipse中
    Hibernate配置文件详解
    网站怎么布局能解决不同浏览器对CSS解析的差异,使用css reset
    SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
    Myeclipse最全快捷键
  • 原文地址:https://www.cnblogs.com/wxy0715/p/12442115.html
Copyright © 2020-2023  润新知