1 先检测文件是否存在
if(typeof(w)=="undefined") { w=new Worker("myworkers.js"); }
2 然后我们就可以从 web worker 发送和接收消息了。向 web worker 添加一个 “onmessage” 事件监听器。
w.onmessage=function(event){ document.getElementById("result").innerHTML=event.data; };
3 终止web worker
当我们创建 web worker 对象后,它会持续监听消息(即使在外部脚本完成之后)直到其被终止为止。如需终止 web worker,并释放浏览器/计算机资源,可以用terminate() 方法。
worker.terminate();
Web Worker有五个限制
(1)同源限制:分配给Worker线程运行的脚本文件,必须与主线程的脚本文件同源。
(2)DOM限制:worker只能读取navigator对象和location对象,无法使用window,document,parent对象。因为woker线程所在的全局对象与主线程的不一样,所以也无法读取主线程所在页面的DOM对象。
(3)通信联系:主线程和子线程无法直接通信,因为它们不在同一个上下环境。
(4)脚本限制:woker线程不能执行alert()方法和confirm()方法,但可以使用XMLHttpRequst对象发出AJAX请求。
Q1:什么是XMLHttpRequst对象?
A1:用户在后台和服务器交换数据的对象。
Q2:功能是什么?
A2:不重新加载页面的情况下更新页面;在页面加载后从服务器请求数据和接收数据;在后台向服务器发送数据。
(5)文件限制:worker线程不能读取本地文件(file://),加载的脚本必须来源于网络。
2.9 Web Storage
看到stoage就可以猜测到这个是存储,那是什么东西的存储呢。当然是数据的存储。这些数据可以是临时的也可以是永久的。
Q1:它什么要出现,相比HTML4它优势是什么?
A1:HTML4中用cookie,在用户端保存用户数据。但是存在弊端。内存大小不够大只有4kb;浪费带宽,因为数据发送的时候是连HTTP事务一起发送,造成资源浪费;操作cookie复杂麻烦困难。所以HTML5用Web Storage在客户端本地保存用户数据。
Q2:cookie和Web Storage有什么区别?
A2:Web Storage存储的空间大小更大,一般有5MB;用户数据存储在本地(浏览器)不与服务器发生通信;Web Storage本身自带方法setletm(),getletm(),removeletm(),clean()等,不需要cookie复杂的封装setCookie,getCookie。操作简单。
web Storage分类
1 localStorage
2 sessionStorage
Q1:什么是sessiionStorge?
A1:user进入页面浏览至关闭浏览器的时间。页面在,数据在,页面无,数据无。重新加载页面的时候,数据仍然存在。
Q2:localStorage和sessionStorage有什么区别?
A2:相同点
(1)数据都保存在浏览器客户端
(2)同源,即同域名,同端口,同协议。
(3)操作方法相同。
不同点
(1)生命周期不同。localStorage是永久保存,除非用户手动清除数据。sessionStorage是临时保存。
(2)作用域不同。浏览器有很多种,所以无法共享用户数据,也就是不同源的页面无法共享数据。localStorage信息可以在相同浏览器中同源的不同页面,不同标签,不同窗口中共用。sessionStorage不可以在不同页面,不同标签,不同窗口中共用,即使是同源。