HTML5 与JS学习笔记
2014-10-22 10:49 Evan.Pei 阅读(285) 评论(0) 收藏 举报1999年12月发布的HTML4.01
W3C(World Wide Web Consortium,万维网联盟
HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性能够帮助我们实现服务器将数据“推送”到客户端的功能。
OOP 【Object Oriented Programming】面向对象编程
W3C 【World Wide Web Consortium】万维网联盟
视频音频播放

上图:浏览器找到合适的视频文件进行播放,如没有显示您的浏览器不支持!下图音频同理


//视频/音频 暂停播放代码:
<input type="button" value="播放/暂停" onclick="playq();"/>
function playq(){
if(aaa.paused)
aaa.play();
else{
aaa.pause();
}
}
控件的拖放
将任何控件拖放到div中


Canvas绘图
1. 方形fillRect(X,Y,width,height)

效果图:

2. 绘制线条stroke()

SVG
- SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
- SVG 用于定义用于网络的基于矢量的图形
- SVG 使用 XML 格式定义图形
- SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失
- SVG 是万维网联盟的标准
与其他图像格式相比(比如 JPEG 和 GIF),使用 SVG 的优势在于:
- SVG 图像可通过文本编辑器来创建和修改
- SVG 图像可被搜索、索引、脚本化或压缩
- SVG 是可伸缩的
- SVG 图像可在任何的分辨率下被高质量地打印
- SVG 可在图像质量不下降的情况下被放大
![]()
-
Canvas 与 SVG 的比较
下表列出了 canvas 与 SVG 之间的一些不同之处。
Canvas
- 依赖分辨率
- 不支持事件处理器
- 弱的文本渲染能力
- 能够以 .png 或 .jpg 格式保存结果图像
- 最适合图像密集型的游戏,其中的许多对象会被频繁重绘
SVG
- 不依赖分辨率
- 支持事件处理器
- 最适合带有大型渲染区域的应用程序(比如谷歌地图)
- 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
- 不适合游戏应用
- HTML5 地理定位
-
HTML5 Geolocation API 用于获得用户的地理位置。
鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。
- 获取用户所在的经度和纬度
- 获取google地图所在的位置
HTML 5 Web 存储
在客户端存储数据
HTML5 提供了两种在客户端存储数据的新方法:
- localStorage - 没有时间限制的数据存储
- sessionStorage - 针对一个 session 的数据存储
localStorage 方法
localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
-
<script type="text/javascript"> localStorage.lastname="Smith"; document.write(localStorage.lastname); </script>
sessionStorage 方法
sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。
C#后台不能用其创建的对象,C#创建的对象这里也用不了。
-
<script type="text/javascript"> sessionStorage.lastname="Smith"; document.write(sessionStorage.lastname); </script>
HTML 5 应用程序缓存
什么是应用程序缓存(Application Cache)?
HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。
应用程序缓存为应用带来三个优势:
- 离线浏览 - 用户可在应用离线时使用它们
- 速度 - 已缓存资源加载得更快
- 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。
<html manifest="/example/html5/demo_html.appcache">
页面在断网时也能访问。
HTML 5 Web Workers
这是运行在后台的JavaScript,他的运行不会影响页面的性能。
使用
![]()
-
/example/html5/demo_workers.js
![]()
-
注释:web worker 通常不用于如此简单的脚本,而是用于更耗费 CPU 资源的任务。
Web Workers 和 DOM
由于 web worker 位于外部文件中,它们无法访问下例 JavaScript 对象:
- window 对象
- document 对象
- parent 对象
-
HTML 5 服务器发送事件
服务器后台跟新后自动跟新到前台
HTML5新的输入类型
- email -----------只能输入邮箱地址,并加以验证
- url -----------只能输入例如:http://www.baidu.com的连接,并加以验证
- number
- range
- Date pickers (date, month, week, time, datetime, datetime-local)
- search
- color
-
有点意思的标签
定义 fieldset 元素的标题。
定义围绕表单中元素的边框。
定义 section 或 page 的页脚。
定义 section 或 page 的页眉。
定义被插入文本。
定义被删除文本。
定义生成密钥。
定义有记号的文本。
定义预定义范围内的度量。
定义针对不支持框架的用户的替代内容。
定义针对不支持客户端脚本的用户的替代内容。
定义有序列表。
定义选择列表中相关选项的组合。
定义输出的一些类型。
定义任何类型的任务的进度。进度条
定义短的引用。加“”
定义媒介源。
定义声音内容。
定义视频。
定义上标文本。
定义用在媒体播放器中的文本轨道。
- HTML5新标签
-
定义文本的文本方向,使其脱离其周围文本的方向设置。
定义有记号的文本。
定义预定义范围内的度量。
定义任何类型的任务的进度。
定义若浏览器不支持 ruby 元素显示的内容。
定义 ruby 注释的解释。
定义 ruby 注释。
定义日期/时间。
定义视频。
定义下拉列表。
定义生成密钥。
定义输出的一些类型。
定义图形。
定义 figure 元素的标题。
定义媒介内容的分组,以及它们的标题。
定义声音内容。
定义媒介源。
定义用在媒体播放器中的文本轨道。
定义视频。
定义导航链接。
定义命令按钮。
定义 section 或 page 的页眉。
定义 section 或 page 的页脚。
定义 section。
定义文章。
定义页面内容之外的内容。
定义元素的细节。
定义对话框或窗口。
为 <details> 元素定义可见的标题。
为外部应用程序(非 HTML)定义容器。
-
新属性
-
1.<input type="number" name="points" step="3" />// step 属性规定输入字段的合法数字间隔,(假如 step="3",则合法数字应该是 -3、0、3、6,以此类推) 2.<input type="email" name="email" autocomplete="off/on" />//是否启用输入记忆,和自动完成输入功能.off(打开) 3.<input type="text" name="lname" autofocus>//页面加载时自动获取焦点 4.<input type="url" list="url_list" name="link" />//将html5的下拉框<datalist id="url_list">绑定到文本框中。 5.<input type="search" name="user_search" placeholder="Search W3School" />//以灰色背景字提示该输入的数据。 6. <input type="text" name="usr_name" required="required" />//不为空的检验 -------------以上是input 相关的属性 7. <p contenteditable="true">这是一段可编辑的段落。</p>//在网页上可以直接编辑该文字。 8. <p draggable="true">这是一个可拖动的段落。</p>//设置可以拖动的段落 9. <element dropzone="copy|move|link">//拖动时产生一个复制副本或其他。 10. #div_1{text-transform:capitalize;}//这个样式可使所有单词首字母以大写开头11.css中 !important的用法。 !important代表这重要的意思如有有相同的样式会与这条执行剩下的不执行,ie6除外。 #box { color:red !important;//ie6中不会执行改行,因为ie6不认识 !important,其他浏览器会执行。 color:blue;//ie6会运行这一行。 }---------------以下是JS面向对象---------------
封装
如下图是一个javascript构造函数(constructor )(其实就是一普通的方法,但是在面向对象时理解成构造函数),其中封装了Cat这个原型对象的属性和方法。
![]()
-
Prototype模式,上图已经是封装,下面是更好的封装
Prototype原型的意思,作用是,如上例子中cat的type 属性和eat方法是一样的所有的实例对象都是一样的,这样会占用内存,使用prototype会节省内存使用,所有的实例都指向同一个内存的位置。
![]()
![]()
- 继承
![]()
方法:







浙公网安备 33010602011771号