1999年12月发布的HTML4.01javascript
W3C(World Wide Web Consortium,万维网联盟css
HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性可以帮助咱们实现服务器将数据“推送”到客户端的功能。html
OOP 【Object Oriented Programming】面向对象编程html5
W3C 【World Wide Web Consortium】万维网联盟java
视频音频播放web
上图:浏览器找到合适的视频文件进行播放,如没有显示您的浏览器不支持!下图音频同理编程
//视频/音频 暂停播放代码: <input type="button" value="播放/暂停" onclick="playq();"/> function playq(){ if(aaa.paused) aaa.play(); else{ aaa.pause(); } }
控件的拖放canvas
将任何控件拖放到div中api
Canvas绘图浏览器
1. 方形fillRect(X,Y,width,height)
效果图:
2. 绘制线条stroke()
SVG
与其余图像格式相比(好比 JPEG 和 GIF),使用 SVG 的优点在于:
Canvas 与 SVG 的比较
下表列出了 canvas 与 SVG 之间的一些不一样之处。
Canvas
SVG
HTML5 Geolocation API 用于得到用户的地理位置。
鉴于该特性可能侵犯用户的隐私,除非用户赞成,不然用户位置信息是不可用的。
HTML 5 Web 存储
HTML5 提供了两种在客户端存储数据的新方法:
localStorage 方法存储的数据没有时间限制。次日、第二周或下一年以后,数据依然可用。
<script type="text/javascript"> localStorage.lastname="Smith"; document.write(localStorage.lastname); </script>
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 对象:
服务器后台跟新后自动跟新到前台
HTML5新的输入类型
有点意思的标签
定义 fieldset 元素的标题。 |
|
定义围绕表单中元素的边框。 |
|
定义 section 或 page 的页脚。 |
|
定义 section 或 page 的页眉。 |
|
定义被插入文本。 |
|
定义被删除文本。 |
|
定义生成密钥。 |
|
定义有记号的文本。 |
|
定义预约义范围内的度量。 |
|
定义针对不支持框架的用户的替代内容。 |
|
定义针对不支持客户端脚本的用户的替代内容。 |
|
定义有序列表。 |
|
定义选择列表中相关选项的组合。 |
|
定义输出的一些类型。 |
|
定义任何类型的任务的进度。进度条 |
|
定义短的引用。加“” |
|
定义媒介源。 |
|
定义声音内容。 |
|
定义视频。 |
|
定义上标文本。 |
|
定义用在媒体播放器中的文本轨道。 |
定义文本的文本方向,使其脱离其周围文本的方向设置。 |
|
定义有记号的文本。 |
|
定义预约义范围内的度量。 |
|
定义任何类型的任务的进度。 |
|
定义若浏览器不支持 ruby 元素显示的内容。 |
|
定义 ruby 注释的解释。 |
|
定义 ruby 注释。 |
|
定义日期/时间。 |
|
定义视频。 |
|
定义下拉列表。 |
|
定义生成密钥。 |
|
定义输出的一些类型。 |
|
定义图形。 |
|
定义 figure 元素的标题。 |
|
定义媒介内容的分组,以及它们的标题。 |
|
定义声音内容。 |
|
定义媒介源。 |
|
定义用在媒体播放器中的文本轨道。 |
|
定义视频。 |
|
定义导航连接。 |
|
定义命令按钮。 |
|
定义 section 或 page 的页眉。 |
|
定义 section 或 page 的页脚。 |
|
定义 section。 |
|
定义文章。 |
|
定义页面内容以外的内容。 |
|
定义元素的细节。 |
|
定义对话框或窗口。 |
|
为 <details> 元素定义可见的标题。 |
|
为外部应用程序(非 HTML)定义容器。 |
新属性
1.<input type="number" name="points" step="3" />// step 属性规定输入字段的合法数字间隔,(假如 step="3",则合法数字应该是 -三、0、三、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会节省内存使用,全部的实例都指向同一个内存的位置。
方法: