web worker
定义:让js在后台运行,不会影响到页面的性能
- 通过 var worker = new Worker(url) 加载一个 js 文件来创建一个 worker,同时返回一个 worker 实例。
- 通过 worker.postMessage(data) 方法来向 worker 发送数据。
- 绑定 worker.onmessage 方法来接收 worker 发送过来的数据。
- 可以使用 worker.terminate() 来终止一个 worker 的执行。
web sockets
web sockets的目标是在一个单独的持久的连接上提供全双工、双向通信。
web sockets 使用了自定义的协议,ws://
取代了http://
,wss://
取代了https://
。
这样的好处是:能够在客户端和服务器之间发送非常小的数据,而是HTTP那样的字节级开销。因此web sockets 非常适合移动应用。缺点是制定协议的时间比较长。
创建web socket
var socket = new WebSocket("ws://www.example.com/server.php")
实例化对象后,浏览器就会尝试连接。web socket有个表示当前状态的readyState属性,有0,1,2,3 四种状态:
- WebSocket.OPENING(0) : 正在建立连接
- WebSocket.OPEN(1) : 已经建立连接
- WebSocket.CLOSEING(2) : 正在关闭连接
- WebSocket.CLOSE(3) : 已经关闭连接