HTML5新特性

1、HTML5简介

在之前一直使用的是HTML 4.0标准,而且一直到现在为止,HTML4.0依然作为整个行业的最广泛的使用标准。所谓的HTML5指的就是HTML的第5.0版本,但是对于HTML 5.0标准基本上是让人觉得期待了很久。而且对于HTML5技术与传统的HTML 4最大的差别在于移动端的支持上。例如,在HTML 5之中支持了GPS的取得(可以取得当前移动端的经度和纬度两个信息),那么就可以轻松的实现定位的需要,当然,这一切的操作都必须有一个前提:浏览器要支持。到现在为止一直制约HTML5发展的都已经集中在客户端上,因为有些人不懂的更新。IE纯粹是一个捣乱的,因为微软一直在定义自己的开发标准。在整个HTML 5之中的确包含了许多的新特性:DOM解析的支持、Canvas绘图、Form API、GPS、WEB存储、加强版Ajax、WebSocket。

新特性:
DOM解析的支持
Canvas绘图
FormAPI
GPS
WEB存储
加强版Ajax(不如直接使用jQuery)
WebSocket(更优秀的反向Ajax支持)

如果要想使用HTML5非常容易,只需要在每一个页面的最上面增加以下一段代码即可:

加一句
<!DUCTYPE html>

2、DOM操作新支持

【元素选择器】
DOM操作
最初:
getElementById();
getElementByTagName();

增加
取得单一document.query.Selector();
取得一组document.query.SelectorAll();

范例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8">
<title>HTML5 Demo</title>
<style type="text/css">
.infocls {background: red ;color: yellow;}</style>
<script type="text/javascript">window.onload = function() {  document.querySelector("#msg").setAttribute("class","infocls") ;}
</script>
</head>
<body>
<span id="msg">淄博你好</span>
</body>
</html>

  这种操作与jQuery的功能是一样的,但好像还是jQuery使用更加简短点。

  选择一组元素示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8">
<title>HTML5 Demo</title>
<style type="text/css">
.infocls {background: red ;color: yellow;}
</style>
<script type="text/javascript">
window.onload = function() {  var allElems = document.querySelectorAll("span,div,p") ;
  for (var x = 0 ; x < allElems.length ; x ++) {
	allElems[x].setAttribute("class","infocls") ;
  }
}
</script>
</head>
<body>
<span>淄博</span>
<p>淄博</p>
<div>淄博</div>
<span>淄博</span>
<div>淄博</div>
<p>淄博</p>
</body>
</html>

  

如果使用jQuery操作,那么此时就可以直接设置了,但是HTML5的DOM操作依然没有脱离掉DOM操作的本质的特点,那么此时必须进行循环的方式才可以完成。而且在此选择器里面可以设置“*”表示权限,或者使用“.样式名称”根据样式选择。

总结HTML 5增强了DOM元素的选择功能,这一点要比传统的DOM操作都容易。

  3、利用Canvas绘制图形

在HTML5技术之中如果要想开发游戏,可以使用Canvas去完成。如果要想使用Canvas那么首先应该开辟出一块绘图的空间,也就是说所有需要绘制图形的操作都在此空间完成。但是这个空间必须考虑到浏览器不支持的情况。

<canvas id="can" width="300" height="300">
	当前浏览器不支持Canvas,请更换浏览器。
</canvas>

  如果此时浏览器不支持Canvas,那么就会出现错误的提示信息。如果说现在只是有了一个空间,那么还无法进行图形的展示,因为还需要编写代码。

  范例:准备绘制

<script type="text/javascript">
window.onload = function() {
	try {
	var canvasObj = document.getElementById("can");    // 取得画板
	var ctx = canvasObj.getContext("2d");  // 只支持2D图形} catch (e) {
	alert("错误,当前的浏览器不支持本页操作!") ;
	}
}
</script>

  但是在支持的浏览器上,此时的代码是没有任何问题的,只不过在不支持的浏览器上程序就会出现错误。

  4、视频播放支持

最早所有的视频网站使用的都是Flash技术,但是Flash技术现在的兼容性很差,那么后来当HTML5出现之后,里面的视频播放技术就成为了现在许多视频网站的首选技术。

  范例:播放一个视频

<video id="vid" src="video/news.mp4" controls></video>

  

虽然这种控制的操作很好,但是从现实来讲,所有的视频网站它的视频一定不是固定的。现在所有的控制都是系统自动完成的,如果用户有需要也可以自己完成控制编写。

  范例:实现自己的视频控制

<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<title>HTML5 Demo</title>
<script type="text/javascript">
window.onload = function() {
var videoObj = document.getElementById("vid") ; // 取出视频对象
document.getElementById("playBut").addEventListener("click",function(){
if (videoObj.paused) {  // 如果当前没有播放
videoObj.play() ;   // 播放视频}},false);
document.getElementById("pauseBut").addEventListener("click",function(){
if (videoObj.played) {  // 正在播放videoObj.pause() ;}},false) ;}
</script>
</head>
<body>
<video id="vid" src="video/news.mp4"></video>
<input type="button" id="playBut" value="播放">
<input type="button" id="pauseBut" value="暂停">
</body>
</html>

  

这种控制的本身是比较麻烦的,因为在整个的视频过程之中,需要控制的内容挺多。

总结HTML5中的视频播放只能够说是提供了一个基础的支持,等于是现在可以直接在页面上进行播放了,但是所有的视频播放网站都不可能这么简单,就包括HTML5本身来讲,也是存在有限制的。

定位服务

在现在的开发之中,地理位置的信息实际上已经越来越重要了。包括吃饭、娱乐都需要地理位置的支持。在想取得地理位置操作之前,首先需要判断一下浏览器是否支持GPS定位。

  范例:判断浏览器是否支持GPS定位

<script type="text/javascript">
window.onload = function() {
if (navigator.geolocation) {
alert("恭喜您,您的浏览器支持GPS定位!") ;}
 else {
alert("悲催了,换浏览器吧,不支持定位服务!") ;
}
}
</script>

  

就算你的浏览器支持定位操作,那么你的硬件设备可能也不支持你的定位操作。

  范例:取出坐标

<script type="text/javascript">
window.onload = function() {
if (navigator.geolocation) {navigator.geolocation.getCurrentPosition(function(postion) {
var lo = postion.coords.longitude ; // 取得经度坐标
var la = postion.coords.latitude ;  // 取得纬度坐标
alert("经度= " + lo + ",纬度= " + la) ;} , function(e) {   // 出现错误的处理
alert(e.code) ;}) ;    // 取出坐标
} else {
alert("悲催了,换浏览器吧,不支持定位服务!") ;
}
}
</script>

  

在进行坐标操作的过程之中,如果出现了定位的错误编码,那么可选的值有如下几种:
·0:表示没有错误;
·1:表示用户的浏览器设置中拒绝取得GPS坐标;
·2:尝试取出坐标,但是失败;
·3:超过了预计的处理时间。

如果要想进行GPS定位需要有服务器的支持,否则无法取出。现在有了位置信息:·经度坐标:116.332474·纬度坐标:40.099399如果要想进行坐标位置的定义,那么可以利用GIS系统完成,比如说可以使用Google Map(FQ)或者是百度Map(需要注册)。注册完成之后会给你一个自己的ak信息

总结位置的服务一定需要GPS模块的支持。

WEB存储

1、本地数据存储;
2、session数据存储。

Form API

1、HTML5中的各个增强表单组件的使用(基本不用);
2、HTML5中的验证操作的使用。

虽然HTML5支持了多种多样的表单以及数据的验证操作,但是在开发之中依然不可能广泛使用开来。

所有的开发表单里面依然使用传统的方式编写,依然使用传统的方式验证。

Ajax操作加强

  XMLHttpRequest Level 2的使用。

从Ajax诞生到今天,几乎所有的项目都一定要使用到异步数据处理。而在传统的Ajax操作上会发现许多的处理并不是很人性化,所以从HTML5开始增加了新的Ajax处理支持,目的是希望使用一些更简单的操作进行Ajax的处理。既然要进行Ajax的处理,那么必然要牵扯到服务器端的程序代码,那么下面定义一个Servlet,并且让这个servlet返回XML数据。

  范例:定义servlet处理异步操作

@WebServlet(urlPatterns = "/AjaxServlet")

public class AjaxServlet extends HttpServlet {

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/xml");
    Enumeration<String> enu = request.getParameterNames() ; // 取得全部参数
    while (enu.hasMoreElements()) {
    String paramName = enu.nextElement() ;
    System.out.println("*** 【参数名称】paramName = " + paramName + ",【参数内容】paramValue = " + request.getParameter(paramName));
    }
    response.getWriter().print("<info>");
    response.getWriter().print("<url>淄博</url>");
    response.getWriter().print("</info>");
}

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
    this.doGet(request,response);
}
}

  

本程序里面可以接收参数,也可以进行参数数据的回应,而且回应的数据类型使用XML文本。

  范例:定义ajax操作

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8">
<title>HTML5 Demo</title>
<script type="text/javascript">
window.onload = function() {
var xmlHttpRequest = new XMLHttpRequest() ; // 直接创建交互对象
if (xmlHttpRequest.withCredentials) {   // 现在浏览器不支持
alert("对不起,当前的浏览器不支持Ajax操作") ;
} else {
var mid = "10050" ;   // 参数内容
var name = "盖伦" ;   // 参数内容
xmlHttpRequest.open("post","AjaxServlet") ; // 打开处理路径
xmlHttpRequest.setRequestHeader("Context-Type","form-url") ;   // 设置类型的头信息
xmlHttpRequest.send("mid=" + mid + "&name=" + name) ;
xmlHttpRequest.onprogress= function(e) {    // 当前正在进行处理
alert("正在进行处理,处理进度:" + (e.loaded / e.total)) ;
} ;
xmlHttpRequest.onload = function(e) {
alert("数据处理完毕,服务器返回信息:" + xmlHttpRequest.responseText) ;} ;
}
}
</script>
</head>
<body>
</body>
</html>

  

此类代码与传统的Ajax处理几乎改观不大,唯一的区别是将处理的操作进度由最早的状态,变为了匿名处理的函数。

总结整个Ajax的操作就属于新瓶装了老酒,除了瓶子好看点之外,没什么变化。

WebSocket通讯

如何利用WebSocket实现反向Ajax操作(服务器推送技术)。

时间: 2024-08-01 10:42:38

HTML5新特性的相关文章

html5新特性&lt;html xml xhtml &gt;

说h5之前先来聊聊html   xml   xhtml: 先说DOCTYPE: DOCTYPE是Document Type(文档类型)的简写:用来说明浏览器按什么样的标准来解析文档;类型不同,解析方式不同. 1.html即是超文本标记语言(Hyper Text Markup Language),是最早写网页的语言,但是由于时间早,规范不是很好,大小写混写且编码不规范: 2.xhtml即是升级版的html(Extensible Hyper Text Markup Language),对html进行

Html5新特性 &lt;canvas&gt;画板画直线

 下面例子为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht

Html5新特性 &amp;lt;canvas&amp;gt;画板画直线

 以下样例为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht

HTML5新特性新增功能

HTML5 现如今已经不是SGML的子集,主要是关于图像,位置,存储,多任务等功能的增加. 如:绘图canvas:用于媒介回放的video和audio元素:本地存储localStorage;语义化元素:表单控件等等新增的功能,都是HTML5新特性. 下面列举HTML5新特性详细说明: 一.新的文档类型  (New Doctype) 目前许多网页还在使用XHTML 1.0 并且要在第一行像这样声明文档类型: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1

HTML5新特性,老生常谈——前端面试常见问题

找工作面试的时候有公司技术人员会问html5新特性,那这里就再复习一遍 1.新的文档类型 <!DOCTYPE html> 2.脚本和链接无需type <link href="css/bootstrap.css" rel="stylesheet"> <script src="js/Angular.js"></script> 3.语义化的Header 和Footer 这里通俗说下什么叫做语义化,就是:明

HTML5新特性data_*自定义属性使用

HTML5 新特性data_*自定义属性使用HTML5规范里增加了一个自定义data属性. 这个自定义data属性的用法非常的简单,就是你可以往 HTML 标签上添加任意以 "data-"开头的属性, 这些属性页面上是不显示的,它不会影响到你的页面布局和风格,但它却是可读可写的. 使用 data-* 可以解决自定义属性混乱无管理的现状.

HTML5 & CSS3初学者指南(3) – HTML5新特性

介绍 本文介绍了 HTML5 的一些新特性.主要包含以下几个方面: Web 存储 地理位置 拖放 服务器发送事件 Web存储 HTML5 Web 存储的设计与构想是一个更好的机制来存储客户端的网络数据.它是通过一个网络浏览器作为客户端数据库实现的,它允许网页以键值对的形式来存储数据. 它具有以下特征: 每个原始网站/域最多可存储 5MB 的数据. 你可以通过属性和方法来使用 JavaScript 操作 web 存储器中的数据实现访问. 就像 cookies,你可以选择将保持数据(维持),即使你已

HTML5新特性有哪些

HTML5新特性有哪些: 1.新的文档类型 2.脚本和链接无需 3.语义Header和Footer The Semantic Header and Footer 4.Hgroup 10.Autofocus 属性 Autofocus Attribute 12.Video 支持 Video Support 13.视频预载 Preload attribute in Videos element 14.显示控制条 15.正规表达式 5.标记元素 6.图形元素 8.占位符 9.必要属性

HTML5新特性小结

HTML5 新特性 新的DocType: <!DOCTYPE html> 不需要声明文档类型: 脚本和链接不需要type属性,如 lingk, script; 语义化标签,如:header, footer, hgroup, mark, figure, small, article, 属性及校验, 新的属性,如:placeholder, required, autofocus, pattern, autocomplete, data, contenteditable 自动校验,如: requir

HTML5新特性--svg-echarts(重点)-拖动API-WebWorker

一.html5新特性--svg--(折线/渐变特效对象/滤镜) #折线:多个坐标点组件一条折线 <polyline points="50,50 70,55 60,66 " stroke="" stroke-width=""> </polyline> #points 一组坐标点 #渐变特效对象:一种特效样式(从一种颜色慢慢过滤另一种颜色效果) #渐变特效对象:(1)创建渐变对象 <defs> (2)在指定图形应用