html5储存类型特点,避免踩雷!你不得不知的 HTML5 “新”特性

什么是 HTML5

3826b9e202fdbde9f2c3946c1fbf5767.png

HTML的发展历程如下:

产生于1990年

1997年 HTML4 出现,成为互联网开发的标准

2008年,HTML5正式出现,2002年趋于稳定

HTML在发展过程中,HTML4.01 版本维持了长达十年的时间,之后 HTML5 标准才出现,它被认为是下一代互联网标准。我们今天 Web 开发关于 HTML 内容相关的,绝大部分都是基于 HTML5 标准来进行开发的。

引言

最近,csdn也是迎来了第二波“原力计划”,与其在家无所事事,不如多多学习来充实自己,眼看大三下就要为实习做准备了,该为自己的未来提前做好准备和筹划了。个人偏向前端开发,于是今后的博客内容几乎都是关于前端方面的东西了,如果小伙伴们也对前端感兴趣的话,不妨互相关注一波,可以在评论区交流交流。

本文主要介绍相比于HTML4来说,HTML5有了哪些新的特性了呢,又废除了哪些元素和属性呢?

新增的元素和废除的元素

新增的结构元素

seciton、article、aside、header、hgroup、footer、nav、figure

新增的其它元素

video、audio、embed、mark、progress、meter、time、ruby、rt、rp、wbr、canvas、command、details、datalist、datagrid、keygen、output、source、menu

新增的input元素的类型

email、url、number、range、Data Pickers

废除的元素

能使用CSS替代的元素: basefont、big、center、font、s、tt、u等

不再使用frame框架

只有部分浏览器支持的元素

其它被废除的元素

新增的属性和废除的属性

新增的属性

表单相关的属性

链接相关的属性

其它属性

废除的属性

友情提示:以上提及到的属性和元素均会在下面进行说明和介绍。

HTML5“新”特性

这里给新打上引号是因为,说它新但是也确实不新了,毕竟也出现十多年了,而且现在大部分的特性API都已经被开发使用的差不多了。但是说它不新吧也不太对,因为 HTML5 里面很多 API 都是特性场景特定功能,如果只是一般开发简单的前端页面,那么大部分是不会用到的,所以很多人也不怎么了解。因此,在这里就根据实际代码来基本了解一下,避免被某些专项开发问住,至少不至于一点也不知道~

语义化标签

这个不需要多用语言文字说明,我们来简单实现一下如下图所示的布局代码。

8d7c2f11e3fbf3c75e665cccfef937d9.png

第一种:原始标签布局

Header

Article

Section

Aside

第二种:语义化标签布局

Header

Nav

Article

Section

Aside

Footer

看完上面两种写法相信大部分人还是会经常使用第一种吧。两种写法孰优孰劣其实很难断定,因为单单从性能上来说可能并没有太多区别,而第一种又比较习惯,写起来比较快,但是语义化标签具有如下优点:

比所有布局全部采用 div 标签阅读起来更清晰

利于 SEO,方便搜索引擎识别页面结构 - 这也是非常重要的

方便设备解析,比如盲人阅读,语义化标签比 div 标签要好很多

HTML5 标签还有很多个,具体解释释义大家可以去查看,对应地址:HTML5标签。

表单功能增强

HTML5 对表单功能进行了增强,input 标签可以输入各种类型从而渲染相应的表单内容。具体如下所示:

邮箱标签:

数字标签:

滑动条标签:

搜索框标签:

日期框:

星期框:

月份框:

颜色框:

网址框:

a8ef2d41a8edb65651c627c492f07a24.png

可以看到,都是 input 标签,但是渲染出来的是不同类型的页面元素。除此之外,HTML5 对 form 表单还进行了内置属性的增强。比如通用属性 placeholder、autofocus,再比如如果是 number 类型,则可以设置 min 和 max 属性,如果是 password 类型,则可以设置 minLength 和 maxLength 属性。

更多相关属性,请查阅HTML5 表单

音频/视频

音频/视频是 HTML5 提供的关键 API,因为在 HTML5 之前,浏览器支持音视频方案都是通过 Flash 来实现的,相信很多人都知道,远古的页面确实嵌套着很多 Flash 插件。HTML5 的音频视频方案具体有如下优点:

浏览器原生支持

本网页不支持媒体标签

上面代码,就直接嵌入了一段音频在网页上,并且增加了控制器,非常便捷。视频选项也一样,只不过换成了标签。

可以设置多类型音视频,兼容性良好

本网页不支持媒体标签

媒体标签内部,还可以通过标签来进行多种类型的兼容,比如低版本 IE 不支持 mp3 文件,那么我们就可以通过上面的代码来进行低版本浏览器的兼容,点击播放按钮,浏览器就会从上至下解析,直到解析成功,如果不成功,则显示不支持媒体标签,如下图所示:

0c72ba20bd173b6858f3e4e49a1d720f.png

可以看到,第一个播放的是 mp3 文件,第二个播放的是 ogg 文件。

画布 — Canvas 关于 Canvas 这里不想多说,因为这个地方太专业了,如果只是问你知不知道那么你一定知道,但是不经常使用绘图 API 的话也讲不太清楚细节,因此留给读者自行去搜相关资料。

本地存储 HTML5 的本地存储新增了一些,比如 Storage 和 manifest 离线缓存。之前前端本地存储都是通过 cookie 来进行的。

Storage 分为 LocalStorage 和 SessionStorage,具体的相信大家都很清楚,也经常被问到,所以就不多做解释了。真的烂大街了,我再写也是浪费彼此时间。

Cache Manifest

应用程序缓存为应用带来三个优势:

离线浏览 - 用户可在应用离线时使用它们

速度 - 已缓存资源加载得更快

减少服务器负载 —— 浏览器将只从服务器下载更新过或更改过的资源。

下面简单来设置一下,如下图所示,在有网络的时候加载一个图片链接,然后将网络设置成离线,该链接就不可访问了。

2454c28e462a374142592c0bba53a08f.png

设置一下离线缓存,新建manifest.appcache,这里的后缀名是官方建议的。具体可以查看此处HTML5 应用缓存,然后写入如下内容:

CACHE MANIFEST

https://dss0.bdstatic.com/6Ox1bjeh1BF3odCf/it/u=3097378621,1517430839&fm=74&app=80&f=JPEG&size=f121,90?sec=1880279984&t=7dcb802bd45e50b25868fc4d1302ffdc

里面对应的内容就是我们希望缓存的图片线上地址,然后我们在有网的时候访问一下,再关闭网络,刷新页面就会发现图片可以正常展示,并且从图中可以看出,加载的图片就变成了从 cache 里获取。

50e41772a5cbf00be148815caa018cdc.png

Web Worker

我们都知道,HTMl 代码的执行顺序是从上而下,单线程执行,所以当浏览器执行到某个 js 脚本的时候,页面的状态是不可被响应的,也就是会阻塞。而 Web Worker 是运行在后台的 JavaScript,它独立于其他脚本,不会影响页面的性能。也就是说,类似于多线程,给 Worker 的脚本代码开了另一个线程来执行,一般来说配合 HTML5 的 postMessage 来进行与主页面的交流。

Web Worker 看起来非常简单,但是实际使用非常高深,用得好可以提升应用性能,用得不好则很多余。我实际上没怎么用过,所以这里就简单介绍一下。

// worker.js

var i=0;

function timedCount() {

i = i + 1;

postMessage(i);

setTimeout("timedCount()", 500);

}

timedCount();

// webworker.html

var w;

function startWorker() {

if (typeof (Worker) !== "undefined") {

if (typeof (w) == "undefined") {

w = new Worker("webworker.js");

}

w.onmessage = function (event) {

document.getElementById("result").innerHTML = event.data;

};

}

else {

document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Workers...";

}

}

function stopWorker() {

w.terminate();

}

54decfec634d7def999675dd06ecf891.png

具体效果如上图所示,这里需要注意的是,本地文件是无法访问到 worker.js 的,如果想要使用,需要起一个小服务才行。

其他内容 除了上面几个大块知识点,HTML5 还有几个其他 API,这些知识点在某些方面非常的有用,所以在这里也就简单说明一下。

地理定位 HTML5 还提供了地理定位功能,这个就是个封装 API,所以没什么可说的。

var x=document.getElementById("demo");

function getLocation()

{

if (navigator.geolocation)

{

navigator.geolocation.getCurrentPosition(showPosition);

}

else{x.innerHTML="Geolocation is not supported by this browser.";}

}

function showPosition(position)

{

x.innerHTML="Latitude: " + position.coords.latitude +

"

Longitude: " + position.coords.longitude;

}

datalist

这个属性也是非常好用的,只不过我们经常使用别人已经封装好的 UI 组件,所以就没怎么用过,此标签就是 HTML5 封装的 Select API。

94078f66530bd2c9573842561e664df0.png

可编辑内容

这个属性牛逼的不行,也是所有主流浏览器都支持的,并且它被广泛的应用,比如很多网页编辑器,内容切换编辑状态等等,都可以通过这个属性来实现。

如下图所示:

593eb11a13bcf5e2007db3e62dc5779e.png

div 标签变成了可编辑的状态,此属性被很多页面编辑器所应用。非常好用,值得大家二次开发~

跨域

此处知识点也就是 postMessage 和 WebSocket 两个,应该是比较重要的部分,后续再写吧,有点累了…

总结

以上就是你不得不知的HTML “新”特性了,后续内容都会与前端有关,持续更新中,各位伙伴,一起来学习前端吧!

学如逆水行舟,不进则退

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

How to show out three rows from the same databand On A4?

How to show out three rows from the same databand On A4? QuotePost by DoraHuang Tue Mar 13, 2018 4:13 am Hello, there are few questions to ask,1. How to present a report from one DataBand to show out three info?My questions like the picture:it is A4 pag…

rds基于什么开发_IaaS、PaaS、SaaS、DaaS都是什么?现在怎么样了?终于有人讲明白了...

导读:本文将详细科普云计算的概念、云服务的发展现状,并逐一介绍各种云服务模式(IaaS、PaaS、SaaS、DaaS),建议收藏!01 云计算的概念云是一种服务,可以像使用水、电、煤那样按需使用、灵活付费&…

30岁前不要在乎的29件事(转载)

30岁前不要在乎的29件事(转载) 作者: 2004-2-13 20:08:22 原始出处&am…

[转]css实现左侧宽度自适应,右侧固定宽度

原文地址:https://segmentfault.com/a/1190000008411418 页面布局中经常用会遇到左侧宽度自适应,右侧固定宽度,或者左侧宽度固定,右侧自适应。总之就是一边固定宽度,一边自适应宽度。 一般固定宽度是导航栏,自适应宽度…

Java 8发布了! — Lambdas教程

为了庆祝几分钟前发布的Java 8的发布,我正在发布Java 8 Lambdas教程的草稿版本。 这是学习Streams API的一种很好的可视化方法,从第一天开始,它将帮助您开始在自己的应用程序中利用lambda。本文计划在下一期Java Magazine发行中发表&#xff…

angular学习的一些小笔记(中)之表单验证

表单验证 我去,我感觉我这个人其实还是一个很傻逼的一个人,老是因为拼错了一个单词或者怎么样就浪费我很长时间,这样真的不行不行,要正确对待这个问题,好了,说正题吧,angular也有表单验证minle…

html 表单优化,用CSS3优化HTML5表单的步奏

今天给大家带来用CSS3来优化HTML5表单的方法,首先我们创建一个表单,格式如下。#redemption {width: 100%;font-family: ColaborateThinRegular;font-weight: 400;}#redemption hgroup {argin-bottom: 20px;}#redemption div {width: 100%;margin-bottom:…

redis 学习(18)-- AOF

redis -- AOF 什么是 AOF 通过日志方式将redis中的写命令进行日志记录,保存在硬盘文件中。 日志记录的实质是将写命令写在硬盘的缓冲区中,再根据相关策略把数据刷新到磁盘中。 当redis服务器启动时候,执行硬盘中的日志文件以恢复redis中的数据…

重启IIS和SqlServer的命令行

在WEB开发中经常需要重启IIS,每次打开IIS来操作很麻烦,所以我干脆就在桌面新增了一个CMD文件,内容如下:(SQL Server占的内存不少)net stop iisadmin /ynet start w3svc net stop mssqlservernet start mssqlserver每次…

精简SWT FormLayout的用法

出于对效率的追求,我最近重新考虑了SWT FormLayout的可用性。 尽管就灵活性而言,它是我最喜欢的核心布局之一,但我不得不认识到,大多数同事都不情愿地使用它。 考虑到面部反应,建议将其建议用于适当的任务有时实际上会…

vue 启动时卡死_十分钟浅入Vue 原理

vue原理引用众所周知vue是一个MVVM 渐进式框架,MVVM是vue的设计模式,在vue框架中数据会自动驱动视图。1、MVVM设计模式 ​ 解释View是视图,就是DOM;对应视图也就是HTML部分--代表UI组件,它负责将数据模型转化成UI展现出…

可以使用计算机解决的问题是什么,1.1 使用计算机解决问题的一般过程教案1

算法及其实现【学习目标】1、了解算法的含义2、了解算法的表示方法3、会用流程图表示算法4、能正确理解流程图中算法的意义【重难点】正确理解流程图中算法的意义【问题引导】问:在考试练习中,同学们一定遇到这种题,你们怎么来做?…

centos7.3 安装 mysql-5.7.13

系统环境: [rootlocalhost ~]# cat /etc/RedHat-release CentOS release 6.7 (Final)[rootlocalhost tools]# uname -aLinux localhost 2.6.32-573.22.1.el6.x86_64 #1 SMP Wed Mar 23 03:35:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux[rootlocalhost tools]# 软件准备:[root…

GARFIELD@12-20-2004

克已复礼为仁转载于:https://www.cnblogs.com/rexhost/archive/2004/12/20/79502.html

Java 8的功能基础

Java 8彻底改变了Java。 它很可能是过去10年中最重要的Java版本。 有很多新功能,包括默认方法,方法和构造函数引用以及lambda, 仅举几例 。 更有趣的功能之一是新的java.util.stream API,正如Javadoc所述,该API支持 …

面向对象克隆对象

克隆对象这种写法不是对象克隆,就是把obj的内存地址赋值给obj2. 通过for in克隆 不管是公有的还是私有的都克隆成私有的 Js提供了一个一个克隆的方法 Object.create() Var obj2Object.create(obj) 将obj的所有属性克隆到obj2的原型上 转载于:https://www.cnblogs.…

JSON.stringify()和JOSN.parse()

JSON.stringify()跟JSON.parse() 终于把这两个方法搞清楚了!!! JSON.tringify():把一个json数据转化成JSON string JSON.stringify({uno:1,dos:2},null,\t)"{"uno": 1,"dos": 2}"JSON.stringfy({u…

查表法实现反正切_关于python实现CRC32的应用和总结

关于python实现CRC32的应用和总结目前使用的Crc计算包含Crc32和Crc32mpeg2两种计算方式。循环冗余检验 CRC 差错检测技术能够证明数据是完整的,是无差错的(只是非常近似的认为是无差错的)。保证数据可靠性传输的方法包含如下:检验…

bootstrap html5 表单验证,基于Bootstrap+jQuery.validate实现表单验证

这大概是一种惯例,学习前台后台最开始接触的业务都是用户注册和登录。现在社会坚持以人为本的理念,在网站开发过程同样如此。User是我们面对较多的对象,也是较核心的对象。最开始的用户注册和登陆这块,也就尤为重要。用户注册和登…

小程序支付及H5支付前端代码小结

小程序支付和H5支付前端都不需要引入其他的js , 只需要后台将相关的参数 ( timeStamp: , nonceStr: , package: , signType: MD5, paySign: , ) 返回来就可以发起微信支付。 小程序支付: wx.requestPayment({timeStamp: ,nonceStr: ,package:…