1、web worker
js 是单线程执行,但是不能重复利用现在多核 CPU的特性。web worker在后台运行,主线程和web worker互不干扰。可以把一些计算密集的任务交给web worker,这样浏览器就会一直很顺畅。
必须要注意web worker的同源限制、DOM限制、通信限制、脚本限制等。web worker 不能让你操作dom,主要用来做一些计算密集,IO密集操作(输入输出,像磁盘存取数据)
web worker的详细用法——阮一峰
2、Server-Sent Events
Server-Sent Events简称sse,sse的主要作用是方便服务端向客户端推送信息。
轮询、长轮询、sse、WebSocket 区别。
轮询:就是不停 的请求,有新数据就更新,没有就为空
长轮询: 就是服务端延迟回复,有新消息才回复,没有就不会。
sse:就是客户端与服务端建立连接之后,服务端可以随时给客户端推送消息,而且sse使用的是http协议,比较轻量级,默认支持断线重连。sse相当于的单向 推送,客户端不能给服务端发消息。
WebSocket:WebSocket属于全双工,可以双方推送消息。
网友评论