l 什么是worker?
• JS的单线程(放入UI队列的个数,利用定时器解决)
• 可以让web应用程序具备后台处理能力,对多线程的支持非常好。
l WorkerAPI
• newWorker(‘后台处理的JS地址’)
• 利用postMessage传输数据
• importScripts(‘导入其他JS文件’)
后台的js文件中能执行的语法是有限的
客户端将数据传到后台JS中进行计算,再将结果返回到客户端进行显示。客户端支持的语法很多。
Worker.html文件
<script>
var w1 = new Worker('test.js');//将test.js变成另外线程中的文件
//worker.html与test.js之间进行通信
w1.postMessage('hi');
w1.onmessage = function(ev){
alert( ev.data );
};
</script>
Test.js文件
self.onmessage = function(ev){
//console.log(ev.data);
self.postMessage(ev.data +'妙味课堂');
};
l Worker运行环境
• navgator : appName、appVersion、userAgent、platform
• location : 所有属性都是只读的
• self : 指向全局 worker 对象
• 所有的ECMA对象,Object、Array、Date等
• XMLHttpRequest构造器
• setTimeout和setInterval方法
• close()方法,立刻停止worker运行
• importScripts方法
HTML5其他功能
l 内容编辑
• contenteditable="true“
• 把其他边框作为输入框使用
l 语音输入
• <inputtype="text" x-webkit-speech />
• Webkit内核支持
l 桌面提醒
• window.webkitNotifications.requestPermission();
• statue= window.webkitNotifications.checkPermission();
• varnotification=window.webkitNotifications.createNotification("[imgurl]","Title","Body");
• notification.show();
只支持webkit内核
是基于桌面的,不是基于浏览器的