html5 web worker相当于在主线程下有开了一个子线程,可以在后台运行子线程而不影响页面相应。

if(typeof(Worker)!=="undefined")

{

if(typeof(w)=="undefined")

{

var w=new Worker("demo_test.js");

work.onmessage=function(event)d

{

document.getElementById("hint").innerHTML=event.data;

}

}

}

else

{

document.getElementById("hint").innerHTML="web worker is not supported by this browser!";

}

web worker的常用api

postMessage()用于主线程与子线程的相互通信。

主线程传递给子线程:w.postMessage();

子线程传递给主线程:postMessage();

onmessage():主线程与子线程用于监听消息;

主线程监听来之子线程的消息:w.onmessage=function(event){event.data}

子线程监听来之主线程的消息:  onmessage=function(event){}

onerror()用于监听错误

w.οnerrοr=function(e)

{

e.message:错误消息

e.lineno:错误所在的行号

e.filename:错误的文件名

}

一般来说Javascript和页面的UI会共用一个线程,所以当点击一个按钮开始运行Javascript后,在这段代码运行完毕之前,页面是无法响应用户操作的,换句话来说就是被“冻结”了。而这段代码可以交给Web Worker在后台运行,那么页面在Javascript运行期间依然可以响应用户操作。后台会启动一个worker线程来执行这段代码,用户可以创建多个worker线程。所以你可以在前台做一些小规模分布式计算之类的工作,不过Web Worker有以下一些使用限制:

  • Web Worker无法访问DOM节点;
  • Web Worker无法访问全局变量或是全局函数;
  • Web Worker无法调用alert()或者confirm之类的函数;
  • Web Worker无法访问window、document之类的浏览器全局变量;

不过Web Worker中的Javascript依然可以使用setTimeout(),setInterval()之类的函数,也可以使用XMLHttpRequest对象来做Ajax通信。

相关链接:

浅谈web worker

关于Web Worker你必须知道的7件事

html5中的web worker用法相关推荐

  1. php中的ol标签,html5中ol标签的用法详解

    这篇文章主要介绍了详解HTML5中ol标签的用法,是HTML5入门学习中的基础知识,需要的朋友可以参考下 定义和用法 标签定义有序列表. HTML 4.01 与 HTML 5 之间的差异 在 HTML ...

  2. HTML5中的Web Notification桌面通知(右下角提示)

    html5桌面通知(Web Notifications)对于需要实现在新消息入线时,有桌面通知效果的情况下非常有用,在此简单介绍一下这个html5的新属性.通过Web Notifications(桌面 ...

  3. html5中ol的意思,详解HTML5中ol标签的用法

    定义和用法 标签定义有序列表. HTML 4.01 与 HTML 5 之间的差异 在 HTML 4.01 中,不赞成使用 "start" 属性,在 HTML 5 中是允许的. 在 ...

  4. 【HTML】HTML5中的Web Notification桌面通知

    大家在做一些浏览器端的聊天功能的时候,或者在一些网站跟在线客服咨询的时候,会看到一些消息通知的提示,常见的有浏览器标签页的闪烁和屏幕右侧的消息通知.这里简单的介绍一下如何实现这样的功能. 1.实现标签 ...

  5. html的canvas标签用法,html5中关于canvas标签用法(绘图)

    标签只是图形容器,您必须使用脚本来绘制图形. 用canvas配合javascript可以直接在html页面动态绘图,无需调用jquery. 代码如下: var my_canvas=document.g ...

  6. 关于Web Worker你必须知道的7件事

    原文:http://www.developer.com/lang/jscript/7-things-you-need-to-know-about-web-workers.html 译者: Rock(r ...

  7. 如何查找历史线程阻塞原因_学习 Web Worker(js中的“多线程”)

    昨天部门例会,讨论开发的系统遇到的问题,遇到一个医保上传比较耗时的问题,解决方案提到了Web Worker,学习一波. 首先简单介绍一下什么是web worker.我们都知道在浏览器中javascri ...

  8. html5之web worker

    Web Worker 在本文中 与 Web Worker 进行双向通信 WindowTimers 在 IE10 Platform Preview 4 中对 Web Worker 的更新 API 参考 ...

  9. 弥补Web开发缺陷实战 HTML5 中存储API

    COOKIES的限制和缺陷 首先,让我们来回顾下 cookies.Cookies 的出现可谓大大推动了Web的发展,但它既有优点也有一定的缺陷.Cookies 的优点在于,它可以允许我们在登陆网站时, ...

  10. 什么是Web Worker?

    简单点说,Web Worker就是一个运行在后台的JavaScript线程,不会影响页面的响应. 我们知道,JavaScript是单线程的脚本语言,即同一时刻只能做一件事情,否则会带来极其复杂的同步问 ...

最新文章

  1. flask 渲染 vue 打包后的dist文件(直接用后端渲染)
  2. Openstack组件部署 — keystone(domain, projects, users, and roles)
  3. python的输入和格式输出
  4. c# wpf listbox 高度_WPF快速入门系列(1)——WPF布局概览
  5. 使用Spring JDBC进行数据访问 (JdbcTemplate/NamedParameterJdbcTemplate/SimpleJdbcTemplate/SimpleJdbcCall/Stor)
  6. 可以输入值的下拉框(select和input的组合使用)
  7. JS中对象赋值只传值不传对象(地址)的方法,改变新值不影响旧值的两种方法...
  8. jQuery.fn.extend()方法
  9. Acrobat XI 安*装#教程*和安装%包分*享
  10. asp.net MVC中form提交和控制器接受form提交过来的数据(转)
  11. 4-MSP430定时器_定时器中断
  12. phpdesigner 配置SVN
  13. 计算机视觉:步态识别-综述(一)
  14. 软件项目管理EAC、ETC的计算
  15. my music / NightWish / Groove Coverage / DJ
  16. jmeter里看java的log,jmeter中java协议请求
  17. android api版本修改,Android 版seesmic修改API方法
  18. OSChina 周日乱弹 ——我对象整天在家打游戏,怎么办?
  19. 加州大学欧文分校计算机排名,2017年加州大学欧文分校在美国的排名是多少?...
  20. 赠书福利丨被马斯克送上天的《银河帝国》和互联网江湖

热门文章

  1. C#中如何调用动态链接库DLL
  2. 走进R语言的世界——简单数据处理
  3. 动态生成实物文件思路
  4. 07Java Server Pages
  5. 中国电信物联网平台入门学习笔记3: 电信开发者平台使用
  6. Android 各API版本代码常量
  7. 13. 面向对象的概述
  8. NestedScrollView嵌套ListView可行性总结
  9. Deep Learning 深度学习 学习教程网站集锦
  10. 生活,不求深刻,只求简单。