好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

总结html5的新特性(面试必备)

HTML5想必大家都很熟悉了,因为太多的媒体在讨论这一技术。所以当我们在面试前端工作的时候,遇到html5相关的问题一点也不意外,想要顺利通过前端面试?下面这篇文章就来跟大家分享介绍了关于前端面试必备之html5新特性的相关资料,需要的朋友可以参考下。

<canvas id="canvas">替代内容</canvas>
<script>
    var canvas = document.getElementById('canvas');
    var context =canvas.getContext("2d"); // 获取上下文
    //设置纯色
    context.fillStyle = "red";
    context.strokeStyle = "blue";
    // 实践表明在不设置fillStyle下的默认fillStyle为black
    context.fillRect(0, 0, 100, 100);
    // 实践表明在不设置strokeStyle下的默认strokeStyle为black
    context.strokeRect(120, 0, 100, 100);
</script> 
<video src="video.webm" controls>
    <object data="videoplayer.swf" type="application/x-shockwave-flash">
        <param name="movie" value="video.swf" />
    </object>
    Your browser does not support HTML5 video.
</video> 
 var hasVideo = !!(document.createElement('video').canPlayType); 

Geolocation API

html5的Geolocation API(地理定位API),可以请求用户共享他们的位置。使用方法非常简单,如果用户同意,浏览器就会返回位置信息,该位置信息是通过支持html5地理定位功能的底层设备(如笔记本电脑或手机)提供给浏览器的。位置信息由纬度、经度坐标和一些其他元数据组成。

位置信息从何而来

Geolocation API不指定设备使用哪种底层技术来定位应用程序的用户。相反,它只是用于检索位置信息的API,而且通过该API检索到的数据只具有某种程度的准确性,并不能保证设备返回的位置是精确的。设备可以使用下列数据源:

IP地址
三维坐标
GPS
从RFID、WiFi和蓝牙到WiFi的MAC地址

 // 一次更新
navigator.geolocation.getCurrentPosition(updateLocation, handleLocationEror);
function updateLocation(position) {
    var latitude = position.coords.latitude;     // 纬度
    var longitude = position.coords.longitude;   // 经度
    var accuracy = position.coords.accuracy;     // 准确度
    var timestamp = position.coords.timestamp;   // 时间戳
}
// 错误处理函数
function handleLocationEror(error) {
    ....
}
// 重复更新
navigator.geolocation.watchPosition(updateLocation, handleLocationEror);
// 不再接受位置更新
navigator.geolocation.clearWatch(watchId); 
 window.addEventListener("message", messageHandler, true);
function messageHandler(e) {
    switch(e.origin) {
        case "friend.example测试数据":
        // 处理消息
        processMessage(e.data);
        break;
    default: 
        // 消息来源无法识别
        // 消息被忽略
    }
} 
<datalist id="contactList">
    <option value="a@qq测试数据"></option>
    <option value="b@qq测试数据"></option>
</datalist>
<input type="email" id="contatcs" list="contactList"> 
 draggableElement.addEventListener('dragstart', function(e) {
    console.log('拖动开始!');
}); 
 draggableElement.addEventListener('dragstart', function(event) {
    event.dataTransfer.setData('text', 'Hello World!');
}); 

dataTransfer对象的属性有:

dropEffect:拖放的操作类型,决定了浏览器如何显示鼠标形状,可能的值为copy、move、link和none。

effectAllowed:指定所允许的操作,可能的值为copy、move、link、copyLink、copyMove、linkMove、all、none和uninitialized(默认值,等同于all,即允许一切操作)。

files:包含一个FileList对象,表示拖放所涉及的文件,主要用于处理从文件系统拖入浏览器的文件。

types:储存在DataTransfer对象的数据的类型。

dataTransfer对象的方法有:

setData(format, data):在dataTransfer对象上储存数据。第一个参数format用来指定储存的数据类型,比如text、url、text/html等。

getData(format):从dataTransfer对象取出数据。

clearData(format):清除dataTransfer对象所储存的数据。如果指定了format参数,则只清除该格式的数据,否则清除所有数据。

setDragImage(imgElement, x, y):指定拖动过程中显示的图像。默认情况下,许多浏览器显示一个被拖动元素的半透明版本。参数imgElement必须是一个图像元素,而不是指向图像的路径,参数x和y表示图像相对于鼠标的位置。

Web Workers API

Javascript是单线程的。因此,持续时间较长的计算,回阻塞UI线程,进而导致无法在文本框中填入文本,单击按钮等,并且在大多数浏览器中,除非控制权返回,否则无法打开新的标签页。该问题的解决方案是Web Workers,可以让Web应用程序具备后台处理能力,对多线程的支持性非常好。

但是在Web Workers中执行的脚本不能访问该页面的window对象,也就是Web Workers不能直接访问Web页面和DOM API。虽然Web Workers不会导致浏览器UI停止响应,但是仍然会消耗CPU周期,导致系统反应速度变慢。

Web Storage API

Web Storage是html5引入的一个非常重要的功能,可以在客户端本地存储数据,类似html4的cookie,但可实现功能要比cookie强大的多。

sessionStorage

sessionStorage将数据保存在session中,浏览器关闭数据就消失。

localStorage

localStorage则一直将数据保存在客户端本地,除非手动删除,否则一直保存。

不管是sessionStorage,还是localStorage,可使用的API相同,常用的有如下几个(以localStorage为例):

保存数据:localStorage.setItem(key,value);

读取数据:localStorage.getItem(key);

删除单个数据:localStorage.removeItem(key);

删除所有数据:localStorage.clear();

得到某个索引的key:localStorage.key(index);

以上就是总结html5的新特性(面试必备)的详细内容,更多请关注Gxl网其它相关文章!

查看更多关于总结html5的新特性(面试必备)的详细内容...

  阅读:36次