HTML5新增了哪些新特性?
HTML5现在已经不是 SGML 的子集,主要是关于图像、位置、存储、多任务等功能的增加:
- 语意化更好的内容元素, 比如 article 、 footer 、 header 、 nav 、 section
- 用于媒介回放的 video 和 audio 元素
- 绘画画布canvas
- 表单控件, calendar 、 date 、 time 、 email 、 url 、 search
- 地理
- 本地离线存储,localStorage长期存储数据,浏览器关闭后数据不丢失,sessionStorage的数据在浏览器关闭后自动删除
- 拖拽释放
- 新的技术 webworker 、 websocket 、 Geolocation
HTML5移除了哪些元素?
- 纯表现的元素:basefont、font、s、strike、tt、u、big、center
- 对可用性产生负面影响的元素:frame、frameset、noframes
支持 HTML5 新标签:
- IE8/IE7/IE6 支持通过 document.createElement 方法产生的标签
- 可以利用这一特性让这些浏览器支持 HTML5 新标签 浏览器支持新标签后, 还需要添加标签默认的样式
- 当然也可以直接使用成熟的框架 、比如 html5shim
怎么处理HTML5新标签兼容问题?
主要有两种方式:
实现标签被识别: 通过document.createElement(tagName)方法可以让浏览器识别新的标签,浏览器支持新标签后。还可以为新标签添加CSS样式
用JavaScript解决: 使用HTML5的shim框架,在head标签中调用以下代码:
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
HTML5的离线储存
在用户没有与因特网连接时, 可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。
工作原理
HTML5 的离线存储是基于一个新建的 .appcache 文件的缓存机制(不是存储技 术), 通过这个文件上的解析清单离线存储资源, 这些资源就会像 cookie 一样被存储了下 来。之后当网络在处于离线状态下时, 浏览器会通过被离线存储的数据进行页面展示。
如何使用
页面头部像下面一样加入一个 manifest 的属性; 在 cache.manifest 文件的编写离线存储的资源 在离线状态时, 操作 window.applicationCache 进行需求实现
CACHE MANIFEST
#v0.11
CACHE:
js/app.js
css/style.css
NETWORK:
resourse/logo.png FALLBACK: /offline.html
HTML5离线储存资源进行管理和加载
在线的情况下, 浏览器发现 html 头部有 manifest 属性, 它会请求 manifest 文件。
如果是第一次访问 app ,那么浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储 。
如果已经访问过 app 并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的 manifest 文件与旧的 manifest 文件, 如果文件没有发生改变,就不做任何操作, 如果文件改变了,那么就会重新下载文件中的资源并进行离线存储。
离线的情况下, 浏览器就直接使用离线存储的资源。
持续学习总结记录中,回顾一下上面的内容: HTML5新增了哪些新特性?移除了哪些元素?怎么处理HTML5新标签兼容问题?HTML5的离线储存的工作原理、 如何使用,浏览器是怎么对HTML5的离线储存资源进行管理和加载的