HTML5 6

复习:

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主线程。

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

<button onclick="console.log(111)">1</button>

<script src="耗时.js"></script>

<button onclick="console.log(222)">2</button>

根本解决之道:

创建一个新的线程,去执行耗时的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<localStorage.length; i++){

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

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

}

时间: 2024-09-07 11:50:14

HTML5 6的相关文章

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc

HTML5介绍

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. HTML5没有那么难,他是一个非常简单的标记. 三个知识点:THML5/JS/CSS3. 之后是网页框架 C/S 客户端/服务器 B/S 浏览器/服务器 C/S构架的优缺点: C/S架构的模型: C/S架构一旦发生更新,那么成千上万个客户机都要进行更新,如果更新内容比较多,客户机不更新完毕,就无法运行. B/S架构工作原理: B/S架构优缺点: 移动公司都是

Web程序员们,你准备好迎接HTML5了吗?

HTML5作为下一代的web开发标准,其特性已经慢慢地出现在主流的浏览器中,这种新的HTML将会让浏览器不必再依赖Flash.QuickTime.Silverlight等插件,也简化了原来需要大量JS才能达到的效果.虽然HTML5还在讨论过程中,但是其优越的特性已经得到了大家的认可,各大浏览器厂商,一些知名的内容发布网站也都是积极地推动, 尤其是即将发布的IE9会完全支持HTML5.作为Web开发人员的我们,需要做的是:如何把HTML5转化为各种Web应用,如何做到现有的Web应用过渡到HTML

了解HTML5大纲算法

实战前的准备工作:了解HTML5大纲算法 在html5中有一个很重要的概念,叫做html5大纲算法(HTML5 Outliner),它的用途为用户提供一份页面的信息结构目录.合理的使用HTML5元素标签,可以生成一个非常清晰的文档大纲. HTML5大纲算法 我们可以通过各种工具去查看当前页面,这里推荐使用一个测试工具:HTML5 Outliner,网址如下:https://gsnedders.html5.org/outliner/ 1. 了解一个 section 和 div 的区别 ①div元素

HTML5 &lt;ruby&gt;注释标签

今天学了HTML5的ruby标签,觉得挺有趣的,来记录一下. ruby可以作注释标签,内部有rp和rt标签. <ruby>  标记定义注释或音标. <rp>    告诉那些不支持ruby元素的浏览器该如何显示. <rt>      标记定义对ruby注释的内容文本. 学完这个标签的第一反应就是,我有方法给那些不会读的日语单词做假名注释啦!!! 代码如下,来给一句日语做个小注释: <!DOCTYPE html> <html lang="en&q

HTML5之新增的元素

今天打开博客看到自己有了一个小粉丝,说实话还是蛮开心的,坚持写博客大半年了,终于迎来了自己的第一个小伙伴.总算是坚持了那么久的事情看到了结果吧. 前几天参加了我们学院老师的比赛---<青年教师大赛的初赛>.我被我们老师拉去做了义工-----计时员.看了所有老师的比赛,虽然都特别好,但是让我印象深刻的还是一个HTMl5+CSS3的课程.看到那种炫酷的效果,我瞬间都被吸引住了.所以忙完了手头上的作业,就从别人那里要到了HTML5的教程,开始了我的学习HTML5之路.虽然看了6节课了,还是没有学到老

java springmvc +spring+ mybaits 模块化开发框架 HTML5+css3.0+bootstrap响应式开发界面

需要源码,请加QQ:858-048-581 系统模块 1.   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限 角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限. 按钮权限: 给角色分配按钮权限. 2.   按钮管理:自定义按钮管理,维护按钮权限标识等 3.   菜单管理:无限级别自定义菜单,自定义菜单图标,业务菜单和系统菜单分离,菜单状态显示隐藏(递归处理) 4.   数据字典:无限级别,支持多级别无限分类.内设编号,排序等 5.   组织机构:无限级别,

HTML5移动开发中的meta与link

meta HTML5移动开发中的一些webkit专属头部标签,能够帮助浏览器更好的解析HTML代码,从而为HTML5移动开发提供更好的前端表现与体验 viewport网页缩放 1 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> UTF-8编码 1

HTML5学习之离线存储

STORAGE(存储) Cookie 在HTML5技术以前我们会使用 cookie,在浏览器端缓存一些数据,例如:登录用户信息,历史搜索信息等等.但是cookie所支持的容量仅仅只有 4k ,也没有专门的api来操作,只能依赖一些开源的库, 这里使用 cookies.js 存储和获取cookie信息 // 这是一个cookie值 Cookies.set('key', 'value'); // 链式调用 Cookies.set('key', 'value').set('hello', 'world

蓝鸥零基础学习HTML5—html+css基础

蓝鸥零基础学习HTML5-html+css基础 一.课程目标 1.了解前端开发职位:2.掌握常用标签以及语义及用法:3.掌握常用css的特性,掌握基础布局技巧:4.掌握整站规划概念. 二.适用人群 零基础积极学习html5者 三.课程简介 本课程主要讲解了 html+css的基础知识,包括html模板.标签.css基础样式.布局.表格表单.整站等等,是进行前端开发的基础.Html+css是前端开发的基础,大部分前端开发工程都需要从html+css布局开始,html+css的基础非常重要,是前端开