web worker和web 存储

1,web存储

使用HTML5可以在本地存储用户的浏览数据

用户以前在某个网站登录过,曾经用cookie记录历史登录,但是由于cookie不能大量存储数据,目前使用localstorage和sessionstorage存储浏览器端数据

localstorage不受时间限制,sessionstorage关闭网页就消失了。

localStorage   sessionStorage的用法相同

注:function clear() {   locastorage.clear();   }  是错误的,应避免使自定义函数名与内置函数名相同。

 1、存储变量

  sessionStorage.setItem('key','value');      //key-是要存储的变量名,value-是变量的值

   localStorage.setItem('key','item');

  2、获取变量的值

  sessionStorage.getItem('key');              //key-是存储的变量名

   localStorage.getItem('key');

   3、删除指定变量

   sessionStorage.removeItem('key');

    localStorage.removeItem('key');

   4、删除本地存储的所有信息

    sessionStorage.clear();

    localStorage.clear();

   5、获取当前存储的键值对数量

   localStorage.length;

   sessionStorage.length;

2,web worker

 1,JavaScript采用单线程进行执行的,在同一时间只能做一件事,HTML5提出了web Worker标准,表示JavaScript允许有多个线程,但是子线程完全受主线程的控制,切子线程不能操作DOM,只有主线程可以操作DOM。

Web Worker的基本原理:在当前的主线程中加载一个只读文件来创建一个新的线程,两个线程同时存在,且互不阻塞,并且在子线程与主线程之间提供了数据交换的接口postMessageonmessage。来进行发送数据和接收数据。其数据格式可以为结构化数据(JSON等);创建新worker的脚本叫做主线程,而被创建的新的worker叫做子线程。

var worker = new Worker("worker.js");

worker.postMessage("text");

worker.onmessage = function (e) { var message = e.data; };

worker.onerror = function(e){ console.log("error at "+e.filename ":" + e.lineno + e.message) }   //异常处理

worker.terminate();  //结束worker

注意:

1,分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。

2,Worker 无法使用documentwindowparent这些对象。但是可以使用navigator对象和location对象。

3,Worker 线程不能执行alert()方法和confirm()方法,但可以使用 XMLHttpRequest 对象发出 AJAX 请求。

4,Worker 线程无法读取本地文件,即不能打开本机的文件系统(file://),它所加载的脚本,必须来自网络。

猜你喜欢

转载自blog.csdn.net/kalinux/article/details/81266480