今天的目标

3.1:h5新特性八--Web Worker---代码就3行

程序:program 存储在外存(磁盘)中代码

进程:Process/Task 将程序调用内存中,分配空间

线程:Thread 线程是进程内部代码基本单位

(1)进程是操作系统分配内存的基本单位

(2)线程是CPU执行代码的基本单位

(3)一个进程内部都多个线程组成,至少一个

(4)多个线程之间"并发执行的",宏观上看同时执行,

微观上看依次循环执行

chorme浏览器

一个 chrome进程内,有多个线程,负责向WEB服务器并发的发起请求,以获取资源: 请求资源线程

还有一个线程将所有内容绘制浏览器中--UI主线程,

还负责执行js/css代码.

观察如下代码

<button>按钮一</button>

<script src="x.js">很耗时js任务</script>

<button>按钮二</button>

现象:js执行代码中,按钮一可见,按钮2不可见

原因:浏览器执行代码和渲染网页同一个线程

解决:创建新线程,由它来执行耗时js任务,

UI主线程负责渲染网页.

代码:

<button>按钮一</button>

<script>

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

</script>

<button>按钮二</button>

3.2:Worker线程缺陷

浏览器不允许Worker线程执行任何DOM/BOM操作

原因:浏览器只允许UI线程操作DOM/BOM,若多个

线程同时操作DOM/BOM页面,混乱..

所以类似jquery脚本不能使用Worker来执行

3.3:Worker线程可以给UI线程发送数据

worker:

postMessage(strMessage);

ui:

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

w.onmessage = function(e){e.data}

3.4:UI线程可以给Worker线程发送数据

ui:

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

w.postMessage(stringmeg);

worker:

onmessage = function(e){e.data}

练习: (1)在HTML中有一个INPUT,请用户输入数字,

(2)添加按钮"开始计算累加和"

(3)<div id="rs"></div>

点击此按钮,创建Worker 线程来计算出用户

输入数字累加和,在下方创建div显示计算结果

项目中Worker的使用场景

(1)只要js中有DOM/BOM就不能用Worker

(2)Worker适合于执行耗时JS任务, 复杂计算,数据统计..

3.5:h5新特性九--Web Stroage

在浏览器中存储一些用户专用数据:内容定制,样式定制..

在客户端存储数据可以使用的技术

(1)cookie技术,浏览器兼容性好,不能超4KB,操作复杂

(2)Flash存储,依赖Flash播放器

(3)H5 WebStorage,不能超8MB,操作简单

(4)IndexDB 可存大量数据,还不是标准

Session:会话(用户操作过程)浏览器从打开某一个网站第一页面开始.(会话开始),中间可能打开多个页面(会话中),直到关闭浏览器(会话结束)

WebStorage技术中,为用户提供二个对象

(1)sessionStorage  类数组对象,会话级数据存储

保存数据 sessionStorage[key] = value

保存数据 sessionStorage.setItem(key,value);

获取数据 var value = sessionStorage[key];

获取数据 var value = sessionStorage.getItem(key);

删除数据 sessionStorage.removeItem(key);

删除数据 sessionStorage.clear();

数据个数 sessionStorage.length

获取key  var key = sessionStorage.key(i);

创建login.html 输入用户名,密码,提交,用户点击

提交按钮,提示"登录成功,3s后自动跳转 首页"

返回index.html 右上角 欢迎回来 xxx 退出登录

创建logout.html 提示"您己退出登录,3s后自动跳转首页"

返回index.html 右上角提示"请登录"超链接

(2)localStroage今天的目标

3.1:h5新特性八--Web Worker---代码就3行

程序:program 存储在外存(磁盘)中代码

进程:Process/Task 将程序调用内存中,分配空间

线程:Thread 线程是进程内部代码基本单位

(1)进程是操作系统分配内存的基本单位

(2)线程是CPU执行代码的基本单位

(3)一个进程内部都多个线程组成,至少一个

(4)多个线程之间"并发执行的",宏观上看同时执行,

微观上看依次循环执行

chorme浏览器

一个 chrome进程内,有多个线程,负责向WEB服务器并发的发起请求,以获取资源: 请求资源线程

还有一个线程将所有内容绘制浏览器中--UI主线程,

还负责执行js/css代码.

观察如下代码

<button>按钮一</button>

<script src="x.js">很耗时js任务</script>

<button>按钮二</button>

现象:js执行代码中,按钮一可见,按钮2不可见

原因:浏览器执行代码和渲染网页同一个线程

解决:创建新线程,由它来执行耗时js任务,

UI主线程负责渲染网页.

代码:

<button>按钮一</button>

<script>

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

</script>

<button>按钮二</button>

3.2:Worker线程缺陷

浏览器不允许Worker线程执行任何DOM/BOM操作

原因:浏览器只允许UI线程操作DOM/BOM,若多个

线程同时操作DOM/BOM页面,混乱..

所以类似jquery脚本不能使用Worker来执行

3.3:Worker线程可以给UI线程发送数据

worker:

postMessage(strMessage);

ui:

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

w.onmessage = function(e){e.data}

3.4:UI线程可以给Worker线程发送数据

ui:

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

w.postMessage(stringmeg);

worker:

onmessage = function(e){e.data}

练习: (1)在HTML中有一个INPUT,请用户输入数字,

(2)添加按钮"开始计算累加和"

(3)<div id="rs"></div>

点击此按钮,创建Worker 线程来计算出用户

输入数字累加和,在下方创建div显示计算结果

项目中Worker的使用场景

(1)只要js中有DOM/BOM就不能用Worker

(2)Worker适合于执行耗时JS任务, 复杂计算,数据统计..

3.5:h5新特性九--Web Stroage

在浏览器中存储一些用户专用数据:内容定制,样式定制..

在客户端存储数据可以使用的技术

(1)cookie技术,浏览器兼容性好,不能超4KB,操作复杂

(2)Flash存储,依赖Flash播放器

(3)H5 WebStorage,不能超8MB,操作简单

(4)IndexDB 可存大量数据,还不是标准

Session:会话(用户操作过程)浏览器从打开某一个网站第一页面开始.(会话开始),中间可能打开多个页面(会话中),直到关闭浏览器(会话结束)

WebStorage技术中,为用户提供二个对象

(1)sessionStorage  类数组对象,会话级数据存储

保存数据 sessionStorage[key] = value

保存数据 sessionStorage.setItem(key,value);

获取数据 var value = sessionStorage[key];

获取数据 var value = sessionStorage.getItem(key);

删除数据 sessionStorage.removeItem(key);

删除数据 sessionStorage.clear();

数据个数 sessionStorage.length

获取key  var key = sessionStorage.key(i);

创建login.html 输入用户名,密码,提交,用户点击

提交按钮,提示"登录成功,3s后自动跳转 首页"

返回index.html 右上角 欢迎回来 xxx 退出登录

创建logout.html 提示"您己退出登录,3s后自动跳转首页"

返回index.html 右上角提示"请登录"超链接

(2)localStroage今天的目标

3.1:h5新特性八--Web Worker---代码就3行

程序:program 存储在外存(磁盘)中代码

进程:Process/Task 将程序调用内存中,分配空间

线程:Thread 线程是进程内部代码基本单位

(1)进程是操作系统分配内存的基本单位

(2)线程是CPU执行代码的基本单位

(3)一个进程内部都多个线程组成,至少一个

(4)多个线程之间"并发执行的",宏观上看同时执行,

微观上看依次循环执行

chorme浏览器

一个 chrome进程内,有多个线程,负责向WEB服务器并发的发起请求,以获取资源: 请求资源线程

还有一个线程将所有内容绘制浏览器中--UI主线程,

还负责执行js/css代码.

观察如下代码

<button>按钮一</button>

<script src="x.js">很耗时js任务</script>

<button>按钮二</button>

现象:js执行代码中,按钮一可见,按钮2不可见

原因:浏览器执行代码和渲染网页同一个线程

解决:创建新线程,由它来执行耗时js任务,

UI主线程负责渲染网页.

代码:

<button>按钮一</button>

<script>

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

</script>

<button>按钮二</button>

3.2:Worker线程缺陷

浏览器不允许Worker线程执行任何DOM/BOM操作

原因:浏览器只允许UI线程操作DOM/BOM,若多个

线程同时操作DOM/BOM页面,混乱..

所以类似jquery脚本不能使用Worker来执行

3.3:Worker线程可以给UI线程发送数据

worker:

postMessage(strMessage);

ui:

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

w.onmessage = function(e){e.data}

3.4:UI线程可以给Worker线程发送数据

ui:

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

w.postMessage(stringmeg);

worker:

onmessage = function(e){e.data}

练习: (1)在HTML中有一个INPUT,请用户输入数字,

(2)添加按钮"开始计算累加和"

(3)<div id="rs"></div>

点击此按钮,创建Worker 线程来计算出用户

输入数字累加和,在下方创建div显示计算结果

项目中Worker的使用场景

(1)只要js中有DOM/BOM就不能用Worker

(2)Worker适合于执行耗时JS任务, 复杂计算,数据统计..

3.5:h5新特性九--Web Stroage

在浏览器中存储一些用户专用数据:内容定制,样式定制..

在客户端存储数据可以使用的技术

(1)cookie技术,浏览器兼容性好,不能超4KB,操作复杂

(2)Flash存储,依赖Flash播放器

(3)H5 WebStorage,不能超8MB,操作简单

(4)IndexDB 可存大量数据,还不是标准

Session:会话(用户操作过程)浏览器从打开某一个网站第一页面开始.(会话开始),中间可能打开多个页面(会话中),直到关闭浏览器(会话结束)

WebStorage技术中,为用户提供二个对象

(1)sessionStorage  类数组对象,会话级数据存储

保存数据 sessionStorage[key] = value

保存数据 sessionStorage.setItem(key,value);

获取数据 var value = sessionStorage[key];

获取数据 var value = sessionStorage.getItem(key);

删除数据 sessionStorage.removeItem(key);

删除数据 sessionStorage.clear();

数据个数 sessionStorage.length

获取key  var key = sessionStorage.key(i);

创建login.html 输入用户名,密码,提交,用户点击

提交按钮,提示"登录成功,3s后自动跳转 首页"

返回index.html 右上角 欢迎回来 xxx 退出登录

创建logout.html 提示"您己退出登录,3s后自动跳转首页"

返回index.html 右上角提示"请登录"超链接

(2)localStroage

H5新特性---Web Worker---Web Stroage的更多相关文章

  1. H5新特性---SVG--椭圆--直线--文本--滤镜(高斯滤镜--模糊)--地理定位

    今天的目标 3.1:h5新特性--SVG--椭圆 <ellipse rx="" ry=""  cx="" cy="" ...

  2. H5新特性汇总

    H5新特性: 新增选择器 document.querySelector.document.querySelectorAll 拖拽释放(Drag and drop) API 媒体播放的 video 和 ...

  3. H5新特性--WebStorage--WebSocke

    今天的目标 3.2:h5新特性--WebStorage localStorage  在客户端浏览器保存数据 永久保存 保存数据 localStorage [key] = value 保存数据 loca ...

  4. H5新特性——--第三方绘图工具库 echarts(canvas)---SVG绘图

    今天学习的内容 3.1:h5新特性---第三方绘图工具库 echarts(canvas) 百度 echarts;d3;two.js;.... 3.2:h5新特性---SVG绘图 3.2:h5新特性-- ...

  5. H5新特性-视频,音频-Flash-canvas绘图

    json格式 json - > AJAX json:数据格式,通常是以字符串形式表示 对象 {"name":"james","age" ...

  6. H5新特性实现对class的增删改

    直接撸代码 全靠死记硬背 没什么技术点 HTML部分 <!DOCTYPE html> <html lang="en"> <head> <m ...

  7. Atitti html5 h5 新特性attilax总结

    Atitti html5 h5 新特性attilax总结 Attilax觉得不错的新特性 3.语义Header和Footer (The Semantic Header and Footer) 8.占位 ...

  8. 使用h5新特性,轻松监听任何App自带返回键

    1.前言 如今h5新特性.新标签.新规范等有很多,而且正在不断完善中,各大浏览器商对它们的支持,也是相当给力.作为前端程序员,我觉得我们还是有必要积极关注并勇敢地加以实践.接下来我将和各位分享一个特别 ...

  9. H5新特性之data-*

    简单介绍:html5的data-*能够为标签添加一些自定义的属性和值,并且这种自定义的属性和值可以通过js来获取,十分的便捷 代码: //html<tr th:each="plan : ...

随机推荐

  1. Java 8 Optional 类

    转自:https://www.runoob.com/java/java8-optional-class.html Optional 类是一个可以为null的容器对象.如果值存在则isPresent() ...

  2. 开源微信管家平台——JeeWx 捷微4.0 微服务版本发布,全新架构,全新UI,提供强大的图文编辑器

    JeeWx捷微4.0   微服务版本发布^_^ 换代产品(全新架构,全新UI,提供强大的图文编辑器) JEEWX 从4.0版本开始,技术架构全新换代,采用微服务架构,插件式开发,每个业务模块都是独立的 ...

  3. Chrome 插件PPAPI 开发(一)环境搭建

    前言:本文参考了其他已有的文章,在其基础上简化了一些没有必要的操作. 同时也记录一下chrome 插件ppapi环境的基础搭建.并且感谢已有文章作者的大无畏的分享精神! 在这附上参考文章链接:http ...

  4. P1100 高低位交换

    题目描述 给出一个小于2^{32}232的正整数.这个数可以用一个3232位的二进制数表示(不足3232位用00补足).我们称这个二进制数的前1616位为“高位”,后1616位为“低位”.将它的高低位 ...

  5. API & Web API

    The follow content refer refers to: Baidu Baike                  : https://baike.baidu.com/item/api/ ...

  6. HTML: Dom event

    转自:https://developer.mozilla.org/zh-CN/docs/Web/API/Event Event接口表示在DOM中发生的任何事件; 一些是用户生成的(例如鼠标或键盘事件) ...

  7. CentOS6.3上安装与配置nginx+php+mysql环境

    1. 目前nginx采用是源码包安装的方式(yum安装失败),下载地址:http://nginx.org/en/download.html 我这里的安装包是:nginx-1.12.0.tar.gz 2 ...

  8. 字符IO流

    输入 FileReader的用法: 1. 找到目标文件 2. 建立数据的输入通道 3. 读取数据 4. 关闭资源 具体实例:从硬盘中读取文件 输出 FileWriter的使用步骤: 1. 找到目标文件 ...

  9. Day04 -玩弄Ruby的方法:instance method与class method

    前情提要在第三天时,我们解说了如何在class里用include与extend,去使用module的method. Include is for adding methods to an instan ...

  10. 大数据架构工具hadoop

    Hadoop是一个开源框架,它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据.它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储. “90%的世界数据在过 ...