前端面试题HTML+CSS基础篇——HTML5新增特性

HTML5新增特性总结

一、语义标签

为了更好地实现web语义化,HTML5为我们提供了header,footer,aside,session,nav,article等一些语义化标签,这样即使页面没有css结构,也能很好的展示出页面结构,便于开发者阅读理解。

二、表单

1. 表单控件

HTML5为了增强表单,增加了一些新的type类型,方便输入控制和验证。
例如:data,time,month,week,earch,calander,number,color,range(一个范围内数字值的输入域)

2. 表单属性

  • placeholder:输入框默认提示文字
  • required:规定该项是否为必填项,true为必填,false为非必填,如果input内没有该属性就证明是非必填项
  • autofocus:规定在页面加载时,域自动获得焦点
  • min / max:规定表单可输入的最大值和最小值
  • multiple:规定元素中可选择多个值

三、音频和视频

HTML5提供了音频和视频标签 <audio> / <video>

<audio controls>    //controls属性提供添加播放、暂停和音量控件。
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
您的浏览器不支持 audio 元素。        //浏览器不支持时显示文字
</audio>
<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
您的浏览器不支持Video标签。
</video>

四、存储

HTML5在存储方面提供了sessionStorage、localStorage和离线存储,通过这些存储方式方便数据在客户端存储和获取

sessionStorage和ocalStorage的区别

  • sessionStorage不能长久保存数据,当浏览器该页面或者浏览器关闭的时候,sessionStorage中存储的数据就会过期,而localStorage可以长久保存,即使页面关闭或者浏览器关闭,里面存储的数据也不会过期
  • sessionStorage不在不同的浏览器窗口中共享,即使在同一个页面,而localStorage在所有同源的窗口中都是共享的

何为同源:同源指请求的url与当前的url的协议,端口,域名都相同即同源

localStorage.setItem(key,value);//保存数据
let value = localStorage.getItem(key);//读取数据
localStorage.removeItem(key);//删除单个数据
localStorage.clear();//删除所有数据
let key = localStorage.key(index);//得到某个索引的值

五、canvas画布

是 HTML5 新增的,一个可以使用脚本(通常为 JavaScript) 在其中绘制图像的 HTML 元素。它可以用来制作动画,甚至可以进行实时视频处理和渲染。

<canvas id="canvasImg" width="500" height="300">
   你的浏览器不支持 canvas,请升级你的浏览器。
</canvas>

六、Web Worker

JavaScript语言采用单线程的模式,所有的任务都只能在一个主线程中工作,所有的任务都需要等待前一个任务结束才能进行,一次只能执行一个任务。
而Web Worker就是为JavaScript创建多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worker 线程完成计算任务,再把结果返回给主线程。这样的好处是,一些计算密集型或高延迟的任务,被 Worker 线程负担了,主线程(通常负责 UI 交互)就会很流畅,不会被阻塞或拖慢。

Worker 线程一旦新建成功,就会始终运行,不会被主线程上的活动(比如用户点击按钮、提交表单)打断。这样有利于随时响应主线程的通信。但是,这也造成了 Worker 比较耗费资源,不应该过度使用,而且一旦使用完毕,就应该关闭。

Web Worker注意点:

  • 同源限制:分配给Web Worker线程运行的脚本文件,必须与主线程的脚本文件同源
  • 通信联系:Web Worker线程与主线程不在同一个上下文环境,他们不能直接进行通信联系,必须通过消息完成
  • 脚本限制:Web Worker线程不能使用alert()和confirm()方法,但可以使用XMLHttpRequest对象发出AJAX请求
  • 文件限制:Web Worker线程无法读取本地文件,即不能打开本机的文件系统(file://),它所加载的脚本,必须来自网络
  • Dom限制:Web Worker线程所在的全局对象,与主线程不一样,无法读取主线程所在网页的 DOM 对象,也无法使用document、window,parent这些对象。但是,Web Worker线程可以使用navigator对象和location对象

想要了解更多关于web worker的内容,请关注阮一峰,阮大神的博客,介绍的非常详细,我描述的只是冰山一角!!!

七、WebSocket

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。

HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

简单来说就是省略了三次握手,一次握手之后就可以建立连接,发送请求了

浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据

var Socket = new WebSocket(url, [protocol] );  //第二个参数可选

Socket.readyState:这是一个只读属性,表示连接状态,包含如下的值:

  • 0 - 表示连接尚未建立。
  • 1 - 表示连接已建立,可以进行通信。
  • 2 - 表示连接正在进行关闭。
  • 3 - 表示连接已经关闭或者连接不能打开。

WebSocket 事件:

  • open——Socket.onopen:连接建立时触发
  • message——Socket.onmessage:客户端接收到服务端数据时触发
  • error——Socket.onerror: 通信发生错误时触发
  • close——Socket.onclose:连接关闭时触发

WebSocket 方法:

  • Socket.send():使用连接发送数据
  • Socket.close():关闭连接

八、拖拽

HTML5新增了拖拽和拖放功能

  • dragstart:事件主体是被拖放元素,再开始拖放被拖放元素时触发
  • drag:实践主体是被拖放元素,在正在拖放被拖放元素时触发
  • dragenter:事件主体是目标元素,在被拖放元素进入某元素时触发
  • dragover:事件主体是目标元素,在被拖放元素在某元素内移动时触发
  • dragleave:事件主体是目标元素,在被拖放元素移出目标元素时触发
  • drop:事件主体是目标元素,在目标元素完全接受被拖放元素时触发
  • dragend:事件主体是被拖放元素,在整个拖放操作结束时触发
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值