HTML5学习总结-06 WebWorker
2016-09-10 14:49
537 查看
一 WebWorkder
它允许开发人员编写能够长时间运行而不被用户所中断的后台程序,去执行事务或者逻辑,并同时保证页面对用户的响应。简而言之,就是允许JavaScript创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。从而,可以用webWorker来处理一些比较耗时的计算。好处:
1 可以加载一个JS进行大量的复杂计算而不挂起主进程,并通过postMessage,onmessage进行通信
2 可以在worker中通过importScripts(url)加载另外的脚本文件
3 可以使用 setTimeout(), clearTimeout(), setInterval(), and clearInterval()
4 可以使用XMLHttpRequest来发送请求
局限性:
1 不能跨域加载JS
2 worker内代码不能访问DOM
3 各个浏览器对Worker的实现不大一致,例如FF里允许worker中创建新的worker,而Chrome中就不行
4 IE这个新特性
例子:
index.html
<!DOCTYPE html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <p id="support">你的浏览器不支持 HTML5 Web Workers</p> <button id="stopButton" >停止任务</button> <button id="helloButton" >发送消息</button> <script> window.onload = function() { if( typeof (Worker) !== "undefined") { document.getElementById("support").innerHTML = "你的浏览器支持HTML5 Web Workers"; worker = new Worker("worker.js"); worker.onmessage = function(e) { console.log(e.data); } worker.onerror = function(e) { console.warn(e.message, e); } document.getElementById("helloButton").onclick = function() { worker.postMessage("ok"); } document.getElementById("stopButton").onclick = function() { worker.terminate(); }; } } </script>
worker.js
onmessage = function(e) { postMessage("worker says: " + e.data ); }
参考资料:
http://www.w3school.com.cn/html5/html_5_webworkers.asp http://www.cnblogs.com/giggle/p/5350288.html http://www.cnblogs.com/giggle/p/5350288.html
相关文章推荐
- HTML5 Web Worker 学习笔记
- html5学习-Web Worker(转)
- HTML5学习总结-11 IOS 控件WebView显示网页
- html5学习-Web Worker(转2)
- Html5 web worker 的总结
- html5 学习之路 四 (应用缓存 、web worker 、服务器推送)
- HTML5学习总结-10 Android 控件WebView显示网页
- Struts2学习(五)访问web元素总结
- html5中的web worker的用法
- atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结
- Selenium Webdriver 学习总结-Advanced Usage-Cookie、Profile(七)
- [技术学习]WEB技术学习总结1
- 【零基础学Web】Html5学习第一天
- webparts学习总结
- HTML5之Web Worker
- html5 websql 语句 sqlite3 语句总结
- Android WebView 总结 —— 使用HTML5播放视频及全屏方案
- 小型web服务器thttpd的学习总结(上)&小型web服务器thttpd的学习总结(下)
- Java web学习总结20: JavaBean总结
- selenium webdriver 学习总结 - 自定义Table操作类(十一)