zoukankan      html  css  js  c++  java
  • 通信API、使用Web Workers处理线程

    1、跨文档消息传输                                              
    要想接受从其他的窗口那里发过来的消息,就必须对窗口对象的message事件进行监视。
    window.addEventListener("message",function(ev){...},false);
    ev.orgin:获取消息的发送源;
    ev.data:消息内容;
    ev.source:获取消息发送源的窗口对象。
    使用window对象的postMessage方法向其他窗口发送消息。
    otherWindow.postMessage(message,targerOrigin);
    2、Web Sockets通信                                         
    HTML5提供的在Web应用程序中客户端与服务器端之间进行的非HTTP的通信机制。
    构建连接:var webSocket=new WebSocker("ws://localhost:8081/socket");//URL必须以ws或者wssk开头。
    发送消息:webSocket.send("data");
    接收服务器消息:
    webSocket.onmessage=function(event){
    var data=event.data;
    }
    监听socket打开和关闭事件:
    websocket.onopen=function(event){...}
    websocket.onclose=function(event){...}
    关闭socket:webSocket.close();
    readyState属性只可以获取WebSocket对象的状态。
    3、使用Web Workers处理线程                          
    创建后台线程:var worker=new Worker("worker.js");//参数为后台线程执行的URL
    后台线程不能访问页面或窗口对象。
    在后台线程之中接收消息:worker.onmessage=function(event){/*处理收到的消息*/}
    对后台线程发送消息:worker.postMessage(message);

    在后台线程中,也可以获取worker对象的onmessage事件句柄和postMessage方法在后台进行消息的发送和接收。

    与线程进行数据交互:获取数据后动态创建页面元素。
    线程嵌套:
    单层嵌套:在后台线程中再创建线程。
    向主页面线程发送消息用的是postMessage,而向子线程用worker.postMessage。

    在多个子线程中进行数据的交互:
    线程中可用的变量、函数与类:
    self,postMessage(message),onmessage,importScript(urls),nacigator对象,sessionStore/localStore,XMLHttpRequest,Web Workers,setTimeout(),setInterval(),close,eval(),isNan(),escape()等javaScript核心函数,object,WebSorckets.

  • 相关阅读:
    background之你不知道的background-position
    ES6学习笔记(二)
    ES6学习笔记(一)
    将博客搬至CSDN
    Mongodb的性能优化问题
    使用AngularJS实现的前后端分离的数据交互过程
    输出JS代码中的变量内容
    程序生成word与PDF文档的方法(python)
    python 2.7安装某些包出现错误:"libxml/xmlversion.h:没有那个文件或目录"
    Linux中安装配置spark集群
  • 原文地址:https://www.cnblogs.com/lynn-/p/3451981.html
Copyright © 2011-2022 走看看