H5新特性---Web Worker---Web Stroage
今天的目标
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的更多相关文章
- H5新特性---SVG--椭圆--直线--文本--滤镜(高斯滤镜--模糊)--地理定位
今天的目标 3.1:h5新特性--SVG--椭圆 <ellipse rx="" ry="" cx="" cy="" ...
- H5新特性汇总
H5新特性: 新增选择器 document.querySelector.document.querySelectorAll 拖拽释放(Drag and drop) API 媒体播放的 video 和 ...
- H5新特性--WebStorage--WebSocke
今天的目标 3.2:h5新特性--WebStorage localStorage 在客户端浏览器保存数据 永久保存 保存数据 localStorage [key] = value 保存数据 loca ...
- H5新特性——--第三方绘图工具库 echarts(canvas)---SVG绘图
今天学习的内容 3.1:h5新特性---第三方绘图工具库 echarts(canvas) 百度 echarts;d3;two.js;.... 3.2:h5新特性---SVG绘图 3.2:h5新特性-- ...
- H5新特性-视频,音频-Flash-canvas绘图
json格式 json - > AJAX json:数据格式,通常是以字符串形式表示 对象 {"name":"james","age" ...
- H5新特性实现对class的增删改
直接撸代码 全靠死记硬背 没什么技术点 HTML部分 <!DOCTYPE html> <html lang="en"> <head> <m ...
- Atitti html5 h5 新特性attilax总结
Atitti html5 h5 新特性attilax总结 Attilax觉得不错的新特性 3.语义Header和Footer (The Semantic Header and Footer) 8.占位 ...
- 使用h5新特性,轻松监听任何App自带返回键
1.前言 如今h5新特性.新标签.新规范等有很多,而且正在不断完善中,各大浏览器商对它们的支持,也是相当给力.作为前端程序员,我觉得我们还是有必要积极关注并勇敢地加以实践.接下来我将和各位分享一个特别 ...
- H5新特性之data-*
简单介绍:html5的data-*能够为标签添加一些自定义的属性和值,并且这种自定义的属性和值可以通过js来获取,十分的便捷 代码: //html<tr th:each="plan : ...
随机推荐
- 监测c3动画过渡完成的事件
监测css3动画完成的事件 transitionend 用法: let element = document.getElementById("slidingMenu"); elem ...
- 微信小程序自定义组件实现
官方从 1.6.3 开始对于自定义组件这一块有了比较大的变动,首先比较明显的感觉就是文档比以前全多了,有木有!,现在小程序支持简洁的组件化编程,可以将页面内的功能模块抽象成自定义组件,以便在不同的页面 ...
- 算法之Python实现 - 003 : 换钱的方法数
[题目]给定数组arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim代表要找的钱数,求组成aim的方法数. [代码1]递归 impor ...
- VS2015环境下的提示语法错误:编号的预期结尾后有多余文本(extra text after expected end of number)
当工程中有扩展CListCtrl的类代码,并且有自绘单元格的操作, ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw) 编辑器语法智能提示就会对这个宏定义 ...
- spring boot常用注解小计
@Async 需要执行异步方法时,在方法上加上@Async之后,底层使用多线程技术 .启动类上需要加上 @EnableAsync 注意:异步执行方法,不能与引用方法同在一个类里 @Transactio ...
- windows下vmware配置nat网络
linux学习需要配置网络,可以选择桥接网络,nat网络地址转换. 由于linux的服务,众多需要配置一个固定的ip,因此可以选择静态ip配置. 因此在这里自定义nat网络地址转换,可以固定一台lin ...
- Linux服务器部署javaweb项目,从环境配置,到最终系统运行
部署准备:javaJDK1.7,Tomcat7.0,MySQL5.8,可运行的javaWeb项目,linux环境的服务器(可以是安装在windows电脑上的linux虚拟机,安装了linux系统的电脑 ...
- java List递归排序,传统方式和java8 Stream优化递归,无序的列表按照父级关系进行排序(两种排序类型)
当有一个List列表是无序的,List中的数据有parentid进行关联,通过java排序成两种排序类型: 所用的测试列表最顶级无parentid,若为特殊值,修改下判断方法即可. 第一种排序:按照树 ...
- CMake support in Visual Studio
Visual Studio 2017 introduces built-in support for handling CMake projects. This makes it a lot simp ...
- airTest 应用到项目并优化
之前已经介绍了airTest的原理,该文主要指引大家能够将airTest框架应用到具体的测试项目当中去. 首先要考虑的是: 1. 你是用airTest 去做什么自动化 (android, ios, w ...