<HeadFirst_HTML5> O'REILLY_Chap.10(完)_Web工作线程
来源:互联网 发布:淘宝的差评多久会生效 编辑:程序博客网 时间:2024/05/16 14:16
<HeadFirst_HTML5> O’REILLY_Chap.10(完)_Web工作线程
本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容.
FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性.
FollowMeReading系列的博客标题格式为: <书名> 出版社章节数章节名, 方便大家在纸质版书籍中查找.
FollowMeReading系列博文中的内容大部分是原文, 非原文部分前面将有’博主’字样提醒.
感谢<HeadFirst_HTML5>作者 Eric Freeman & Elisabeth Robson
感谢<HeadFirst_HTML5>翻译 林琪 张伶
正文
原文
BULLTE POINTS(要点):
如果没有Web工作线程, JavaScript是单线程的, 这说明它一次只能做一件事情.
如果交给一个JavaScript程序太多的工作, 你可能会收到一个”slow script”(脚本运行缓慢)对话框.
Web工作线程在一个单独的线程处理任务, 所以主JavaScript代码可以继续运行, 用户界面可以保持响应.
Web工作线程的代码放在与页面代码不同的一个单独的文件中.
Web工作线程不能访问页面代码中的函数或DOM.
页面中的代码与Web工作线程通过消息通信.
要向一个工作线程发送消息, 可以使用
postMessage
.可以通过
postMessage
向工作线程发送字符串和对象, 但不能向工作线程发送函数.可以将工作线程的
onmessage
属性设置为一个处理函数, 来接收由工作线程返回的消息.工作线程将其
onmessage
属性设置为一个处理函数, 来接收页面代码发送的消息.一个工作线程准备发回一个结果时, 会调用
postMessage
, 并传入结果作为参数.工作线程结果封装在一个事件对象中, 并置于
data
属性中.可以使用
event.target
属性查找哪个工作线程发出了消息.消息在主页面代码和工作线程之间会复制, 而非共享.
可以使用多个工作线程完成能分解为多个任务的大规模计算, 如计算一个分形可视化图像或对光线跟踪图像.
每个工作线程在它自己的线程中运行, 所以你的计算机有一个多核处理器, 工作线程会并行运行, 这会提高计算的速度.
可以从页面代码调用
worker.terminate()
来终止一个线程. 这会中止工作线程脚本. 工作线程还可以调动close()
让自己停止工作.工作线程还有一个
oneerror
属性. 可以把这个属性设置为一个错误处理函数, 如果你的工作线程存在一个脚本错误就会调用这个处理函数.要在工作线程文件中包含和使用JavaScript库, 可以使用
importScript
.还可以使用
importScript
来利用JSONP. 要在工作线程文件中实现传入URL查询的回调.工作线程不能访问DOM或主代码中的函数, 但是可以使用
XMLHttpRequest
和本地存储.
- <HeadFirst_HTML5> O'REILLY_Chap.10(完)_Web工作线程
- <HeadFirst_HTML5> O'REILLY_Chap.9_Web存储(本地存储)
- <HeadFirst_HTML5> O'REILLY_Chap.1_认识HTML5
- <HeadFirst_HTML5> O'REILLY_Chap.2_JavaScript和DOM
- <HeadFirst_HTML5> O'REILLY_Chap.7_画布
- <HeadFirst_HTML5> O'REILLY_Chap.8_视频
- <HeadFirst_HTML5> O'REILLY_Chap.3_事件_处理程序
- <HeadFirst_HTML5> O'REILLY_Chap.4_JavaScript函数和对象
- <HeadFirst_HTML5> O'REILLY_Chap.5_实现HTML位置感知
- <HeadFirst_HTML5> O'REILLY_Chap.6_与Web交流
- <HeadFirst_HTML与CSS> O'REILLY_Chap.3_Web页面建设
- <HeadFirst_HTML与CSS> O'REILLY_Chap.14(完)_HTML表单
- <HeadFirst_HTML与CSS> O'REILLY_Chap.10_div与span
- <HeadFirst_jQuery> O'REILLY_Chap.1_jQuery入门
- <Learning SQL> O'REILLY_Chap. 1_背景知识
- <Learning SQL> O'REILLY_Chap. 3_查询入门
- <HeadFirst_HTML与CSS> O'REILLY_Chap.1_认识HTML
- <HeadFirst_HTML与CSS> O'REILLY_Chap.4_连接起来
- C++拷贝构造函数(深拷贝,浅拷贝)
- django 自定义一个 装饰器
- 源码-JavaScript&jQuery交互式前端开发-第5章-文档对象模型-章节示例
- 活动的启动模式和intent.setFlags方法中的参数值含义
- 数据结构-简单排序
- <HeadFirst_HTML5> O'REILLY_Chap.10(完)_Web工作线程
- Mockplus演示和分享原型的8种方式
- AS编译遇到Error:Execution failed for task ':app:clean'. 或者task ':app:delete'
- Java程序猿之报告OKDO(32)
- 利用装饰器给python的函数加上类型限制
- has not been declared和does not name a type解决办法
- 【转】Eclipse启动参数解决占用CPU占用过高
- macOS上如何通过iCloud Drive便利地同步文稿
- The ethical issue with the use of internet