什么是 HTML5 Web Workers?
概念:HTML5 Web Worker 是运行在后台的 JavaScript,不会影响页面的性能,类似于AJAX的异步请求,不会阻塞我们执行其他操作。
如何理解:当我们在 HTML 页面中执行脚本的同时,页面的状态是不可再响应的,除非脚本已经执行完成,才会再次响应我们的操作。Web Worker 是运行在后台的 JavaScript,独立于页面中其他的脚本执行,不会影响页面的整体运行性能。我们可以继续在做:点击、选取内容等等的时候,同一时刻不会影响 Web Worker 在后台独立运行。
特性:
- 由于 web worker 位于外部文件中,它们无法访问下例 JavaScript 对象:
- window 对象
- document 对象
- parent 对象
- 支持异步任务处理
为什么需要 HTML5 Web Workers?
当我们在使用 JavaScript脚本 来处理某些业务逻辑、数据检测的时候,默认情况下我们是不可以同时再处理其他的业务,也就是不能进行异步任务处理比如:我们要进行数据的实时缓存,规定在10秒内进行一次数据的缓存操作,而且不能阻塞我们对页面的其他操作,这个时候就需要使用到异步处理的功能。
我们在日常开发中经常会对异步任务处理有很多的需求,异步任务应用的最简单业务场景就是消息处理,也就是我们日常使用的聊天软件了,没有异步任务处理,我们不会在同时接收好友消息的时候还可以再给好友发送消息,而这两个操作互不影响;
HTML5 给我们提供了可以实现异步任务处理的功能 Web Workers,这使得我们可以利用 JavaScript 来方便的实现更多业务场景的逻辑了。