复习:

HTML5新特性               重要程度(10)

1.新的语义标签               10

2.表单2.0                      7

3.视频和音频                  8

4.Canvas绘图                9

5.SVG绘图                    9

6.地理定位                     1

7.拖放API                     4

8.WebWorker               4

9.WebStorage                     9

10.WebSocket                     2

拖放API——七个事件:

源对象可以触发的事件:

dragstart:

drag:

dragend:

目标对象可以触发的事件:

dragenter:

dragover:     ——  e.preventDefault()

dragleave:

drop:

今日目标:

(1)扩展:如何在网页中拖拽显示客户端的图片

(2)WebWorker

(3)WebStorage

1.面试题:如何在服务器端下载的网页中显示客户端图片?

一般情况下,网页只能显示服务器上的图片;

HTML5中,可以实现用户拖拽一张本地的图片显示在服务器端下载的网页中。

container.ondrop = function(e){

var f0 = e.dataTransfer.files[0];

var reader = new FileReader();

reader.readAsDataURL(f0);

reader.onload = function(){

///读取完成,数据在reader.result中

}

}

HTML5中提供的用于文件输入输出(I/O)的对象:

File:代表一个文件/目录对象

FileList:代表一个文件列表(类数组对象)

FileReader:用于从文件中读取内容

FileWriter:用于向向文件写出内容

2.面试题:Chrome浏览器的线程模型是怎样的?

程序:计算机可以执行的代码,存在于磁盘中——静止的

进程:把程序调入到内存中,等待被CPU执行——活动的

线程:是CPU执行进程代码的基本单位——生产任务

面试题:进程和线程间的关系?

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

线程处于进程内部,是CPU执行代码的基本单位。

一个进程中至少有一个线程,也可以有多个。

多个线程间并发执行——宏观上看是“同时”执行,微观上看是“轮流”执行。

Chrome中的线程模型:

(1)Chrome中发起HTTP请求最多可以使用6个并发的线程;

(2)Chrome中负责向页面中执行绘制任务(执行HTML/CSS/JS/事件处理等代码)的只有1个线程——UI主线程。

碰到如下的代码,就有问题了:

1

2

根本解决之道:

创建一个新的线程,去执行耗时的JS任务——与UI主线程并发执行。new Thread(‘x.js‘) —— 其它语言中的类似代码。

3.HTML5新特性之八——Web Worker

HTML5提供了一种类似创建新线程的机制:

new Worker(‘x.js‘);   //工人线程,与UI主线程并发执行

注意:Worker线程天然缺陷!!

浏览器禁止Worker线程操作任何的BOM和DOM对象!!!——浏览器只允许UI主线程进行页面内容的渲染!——不能使用Worker加载类似jquery.js文件!! 项目中,必需用到Worker的场景不多,比如有非常复杂耗时的且与DOM无关的运算时。

UI主线程可以给Worker线程传递数据——发消息:

UI线程:

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

w.postMessage(‘StringMsg‘);

Worker线程:

onmessage = function(e){  //e.data  //UI主线程发来的消息数据        }

Worker线程可以给UI主线程传递数据——发消息:

UI主线程:

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

w.onmessage = function(e){  //e.data //Worker线程发来的消息数据 }

Worker线程:

.....

postMessage(‘StringMsg‘);

练习:在主界面中有一个输入框+按钮(“开始质数计算”),点击后创建一个新的Worker线程,把用户的输入传递给该线程,进行质数判定;.... 计算结果再反传给UI主线程,在一个DIV元素中显示出运算结果。

总结:Worker本质是一个线程,在UI主线程之外并发执行的线程;用于执行耗时的JS任务;缺陷:不能操作BOM和DOM,只能和UI主线程发消息。

4.数据存储方案

Web项目中需要存储多种数据,大体上有两种存储方法:

(1)服务器端存储:

1)数据库技术:存储项目中的核心数据

2)Session技术:存储当前用户的信息

(2)客户端存储:不太紧要的与客户端有关的数据,如浏览记录、内容定制、样式定制

1)Cookie技术:使用比较繁琐、大小不能超过4KB

2)Flash技术:逐渐被淘汰

3)HTML5WebStorage技术:使用简单,大小不超过8MB

4)IndexedDB技术:客户端直接存储对象,目前还不是HTML标准技术

Web会话:指客户端浏览器从连接到某个Web服务器开始,一系列的请求-响应过程。直到客户端关闭浏览器,会话结束。

5.HTML5新特性之九——WebStorage

HTML5的WebStorage技术,提供了两个对象,用于在浏览器中存储客户端的访问数据:

window.sessionStorage——会话级存储:

在浏览器的内存中存储的与某个服务器间的一系列请求-响应过程中产生的数据——都是Key-Value对形式。当会话结束时(用户关闭了浏览器),会话级数据即消失。

sessionStorage[‘key‘] = ‘value‘;    //存储一个数据

var v = sessionStorage[‘key‘];             //读取一个数据

sessionStorage.length                 //获取数据的个数

sessionStorage.setItem(‘key‘, ‘value‘) //存储一个数据

var v = sessionStorage.getItem(‘key‘) //读取一个数据

sessionStorage.removeItem(‘key‘) //删除一个数据

sessionStorage.clear()                 //清除所有的数据

window.localStorage——本地/跨会话级存储:

在客户端文件系统/硬盘中存储客户端与服务器间的访问数据——都是Key-Value对形式。即使关闭浏览器,甚至关闭计算机仍然存在,否则会永久存在。

localStorage[‘key‘] = ‘value‘;        //存储一个数据

var v = localStorage [‘key‘];         //读取一个数据

localStorage.length                            //获取数据的个数

localStorage.setItem(‘key‘, ‘value‘)      //存储一个数据

var v = localStorage.getItem(‘key‘) //读取一个数据

localStorage.removeItem(‘key‘)   //删除一个数据

localStorage.clear()                            //清除所有的数据

练习:

(1)创建index.html,右上角有一个超链接“登录”,点击此链接跳转到login.html,用户在表单中输入登录信息,点击“提交按钮”,假设用户名和密码都正确,弹出提示“登录成功”,3秒钟跳转回首页,右上角显示出“欢迎回来:xxx  退出登录”;此时若用户在地址栏强行输入login.html,直接跳转到index.html;用户若点击了index.html上的退出登录超链接,则跳转到logout.html,提示出“您已退出登录”,3秒钟跳回index.html,继续显示“登录”超链接

setTimeout(function(){

location.href="";

},3000)

(2)实现一个页面主题的永久定制                    17:55

创建index.html,指定3个class

.blue {  background: #ccf; color: #339;  }

.pink {  background: #f3b; color: #916;      }

.dark {  background: #111; color: #eee;  }

提供一个下拉选择框,“—请选择您喜欢的页面主题—”,“湛蓝天空”、“芭比公主”、“杀马特”,选择某项之后,当前页面的body就使用对应的className。

跳转到usercenter.html,默认也呈现出index.html中选中的页面主题,即使重启浏览器,仍可以呈现出之前选中的主题色。提示:即使重新打开index.html,也要显示出之前选中的主题色。

课后练习:  单词测试系统

(1)用户可以在save.html中不停的录入新单词;

(2)进入test.html开始测试,需要对之前录入过的所有单词进行测试;

(3)提交答案后,在result.html中显示出测试成绩。

提示:录入的单词需要永久保存;而此次测试结果只需要在当前会话中保存。

//遍历客户端存储的数据

for(var i=0; i

var key = localStorage.key(i)              //获取第i个key

var value = localStorage[key];     //获取第i个value

}

html5响应苹果6手机代码,HTML5 6(示例代码)相关推荐

  1. html5获取gps坐标,html5获取手机GPS信息的示例代码

    html5获取手机GPS信息的示例代码function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCu ...

  2. php网页全屏背景图代码,HTML5 body设置全屏背景图片的示例代码

    用什么代码实现?不允许有白色底色产生,因为手机高度不一样 设计图要标准(750)确认是背景图(通屏底图)应用场景:移动端宣传页面或者活动页面 错误的写法:加到div中结合图片设置min-height, ...

  3. Java获取iphone手机gps信息_html5获取手机GPS信息的示例代码分享

    html5获取手机GPS信息的示例代码分享:function getLocation() { if (navigator.geolocation) { navigator.geolocation.ge ...

  4. arcgis sample代码之SOE示例代码PageLayout REST Server Object Extension 的源码分析

    0.前言 研究 arcgis object的代码是十分重要的,对于学习arcObject太重要了,因为没有这些代码,学习混乱的arcObject将会更佳的困难. 我的arcgis server 是10 ...

  5. html代码圣诞树位置代码,html 圣诞树(示例代码)

    简介这篇文章主要介绍了html 圣诞树(示例代码)以及相关的经验技巧,文章约1263字,浏览量499,点赞数8,值得推荐! div{ width:0px; height:0px; background ...

  6. html5播放器插件手机版,Html5弹幕视频播放器插件

    插件描述:Danmmu Player是一个具备弹幕功能的Html5视频播放器. 具备弹幕视频播放,接受用户发送彩色弹幕,实时调解弹幕显示效果等功能. Danmmu Player意在使开发者能便捷的在网 ...

  7. php 歌词同步,HTML5实践之歌词同步播放器的示例代码分享

    歌曲播放我们会发现他的兼容性不是很好,譬如IE上能播放的flash播放器,再firfox或者chrome上就不是很好的应用了,因为有插件的阻碍!HTML5的出现让这一切成为了可能,但是播放器虽然播放了 ...

  8. 生日快乐模板php,HTML5应用-生日快乐动画之实现星星的示例代码分享

    在讲述绘制星星动画之前,先介绍一点javascript知识. 面向对象: javascript本质上不是面向对象语言,而是脚本语言,一般只适合简单.代码量少的程序,因为脚本过于复杂会直接导致浏览器出现 ...

  9. 苹果电脑 html5 视频,苹果Mac系统看HTML5视频教程介绍

    上一回,小编教了大家一个Mac用 HTML5 免费看优酷和土豆等付费视频,这回小编又找到一个用HTML5看视频的好方法,很多很好用的资源,你可以在Mac上看各种地方台的直播以及乐视.凤凰卫视.TVB. ...

最新文章

  1. 2020 年入门数据分析选择 Python 还是 SQL?七个常用操作对比!
  2. xp 4g内存补丁_32位操作系统导致电脑可用内存不足4G
  3. 我爱计算机视觉干货集锦分类汇总(2019年5月7日)
  4. 玩转matlab之一维 gauss 数值积分公式及matlab源代码
  5. 游戏主播们为什么早上不玩游戏?直播圈里还有哪些不成文的规定呢?
  6. 黑苹果mac未能安装在你的电脑上_mac电脑上全新视频剪辑软件安装包分享,让你剪辑视频从此无忧!...
  7. 0 公式 0 基础学习电磁兼容 — 2.IEC及其EMC标准体系简介
  8. 黑苹果音频卡顿_DXOMARK 公布无线音箱音质基准:苹果华为 Sonos 上榜
  9. 细胞生长曲线拟合matlab,绘制细胞生长曲线及细胞群体倍增时间的简化计算
  10. LeetCode-----第二题-----两数相加
  11. C盘满了,要怎么清理才不会误删?
  12. 关于酷狗直播伴侣无法识别虚拟摄像头问题----提供摄像头识别套装、支持远程技术协助(更新2020-11-23)
  13. SAP ABAP 业务开关和 SAP 电商云的 Feature Level
  14. 2019-02-24 经济 金融 投资 理财相关书籍推荐
  15. EDR端点检测与响应
  16. SQL Server 教程
  17. python中括号的作用_python中中括号
  18. 如何高效学习英语?这个方法你一定要知道
  19. java使用scanner.next方式接收键盘输入
  20. CentOS 之 libc-dev 安装

热门文章

  1. 复习笔记:数据库填空题
  2. 生态系统服务——水源涵养水源涵养分布
  3. ThunderboltEX 4 TB- HEADER 接线图
  4. 如何证明我们的世界是真实的,而镜子里的世界是虚假的
  5. 【数学建模】多元线性回归分析
  6. 日暮·第二章·烽烟传讯
  7. word中插入Excel形式的文件附件
  8. HTML5背景图片设置
  9. Bugku-加密-Crack it
  10. 电商平台淘宝商品详情接口调用展示