新增標(biāo)簽
其他更詳細(xì)的見jsfiddle實(shí)例:
http://jsfiddle.net/utLs39y7/10/
1、embed
embed標(biāo)簽是html5新增的標(biāo)簽个从,用來嵌入內(nèi)容,比如插件等歪沃,常用于視頻文件的播放(為外部應(yīng)用程序定義容器)嗦锐。
這篇文章介紹了embed的常用屬性,基本都是定義播放器的一些設(shè)置的沪曙,自動(dòng)播放loop奕污、開始時(shí)間starttime等:
http://www.cnblogs.com/lgx5/p/5714494.html
注:一些視頻文件swf的大小只有幾KB,但是視頻本身是比較大的液走,自己的理解是視頻網(wǎng)站只是將視頻的地址封裝進(jìn)了swf文件碳默,然后鏈接到真正的視頻地址進(jìn)行播放。
2缘眶、artical section aside
都是block塊級(jí)元素嘱根。
- artical一般是指獨(dú)立的一篇文章,一般不與頁面上的其他內(nèi)容有關(guān)聯(lián)磅崭,一般用于新聞文章儿子、論壇的帖子瓦哎、用戶評(píng)論等砸喻,可以獨(dú)立被外部引用,里面包含自己的頭蒋譬、尾割岛、內(nèi)容。
- section類似于div犯助,但是更語義化癣漆,將內(nèi)容分塊,一般section都包含標(biāo)題剂买。
- aside側(cè)邊欄惠爽,一般用于定義文章artical的引用、注解等部分瞬哼。
3婚肆、progress
進(jìn)度條
............................懶得寫了,見jsfiddle實(shí)例....................................
其他新增內(nèi)容
1坐慰、本地存儲(chǔ) localStorage sessionStorage
支持setItem getItem removeItem clear等方法较性,而且支持點(diǎn)操作符和[]訪問某字段。clear清除所有的數(shù)據(jù)項(xiàng)。
與cookie的對(duì)比:
- cookie是為http請(qǐng)求服務(wù)的赞咙,與服務(wù)器進(jìn)行交互责循;
- localStorage sessionStorage是為本地?cái)?shù)據(jù)存儲(chǔ)而服務(wù)的,localStorage是永久本地存儲(chǔ)攀操,sessionStorage是會(huì)話級(jí)別的院仿,會(huì)話關(guān)閉即失效;
- cookie有大小限制及跨域限制速和,且每次請(qǐng)求都會(huì)被攜帶意蛀;
2、web worker
參考:http://www.cnblogs.com/giggle/p/5350288.html
通過創(chuàng)建子線程健芭,解決js單線程會(huì)阻塞的問題县钥。
我的理解就是把一些耗費(fèi)性能的計(jì)算等操作,分離出來到一個(gè)單獨(dú)的js中慈迈,通過創(chuàng)建new Worker()對(duì)象若贮,創(chuàng)建當(dāng)前線程的一個(gè)子線程,不影響主線程上的DOM操作等痒留,等計(jì)算結(jié)束谴麦,子線程通知到主線程,進(jìn)行內(nèi)容更新及子線程銷毀等操作伸头。
子線程的執(zhí)行上下文不是window匾效,所以無法獲取window等對(duì)象,無法操作DOM恤磷,但可以通過postMessage方法與主進(jìn)程進(jìn)行互相通信面哼,通過監(jiān)聽worker.onmessage方法獲取傳遞的數(shù)據(jù),主進(jìn)程可以通過worker.terminate() 關(guān)閉子進(jìn)程扫步。worker對(duì)象一經(jīng)銷毀魔策,則無法重新啟動(dòng),需要重新新建Worker對(duì)象來啟動(dòng)河胎。
3闯袒、geolocation支持用戶地理位置的獲取
經(jīng)用戶同意才被允許獲取。用于導(dǎo)航游岳,可以監(jiān)控用戶地理位置的移動(dòng)等政敢。
navigator.geolocation.getCurrentPosition(success(position), error());
//第一個(gè)函數(shù)正確返回地理位置:經(jīng)緯度、海拔等,position.coords.latitude position.coords.longitude
//錯(cuò)誤處理函數(shù)
//監(jiān)控用戶位置的變化
navigator.geolocation.watchPosition clearWatch()
4胚迫、websocket
基于TCP協(xié)議喷户,雙向的全雙工通信,服務(wù)端和客戶端可以相互推送消息晌区。除了IE外摩骨,其他瀏覽器基本支持了WebSocket()接口(不同于ajax通贞,websocket允許跨域通信)。相關(guān)的API如下:
send + onopen + onmessage + onerror + onclose等恼五。相關(guān)的庫有socket.io昌罩,一般用于聊天應(yīng)用等。
5灾馒、canvas
定義畫布茎用,一個(gè)矩形框,但是真正的圖像繪制需要用js來完成睬罗。
相關(guān)的繪制方法有:fillRect() arc moveTo lineTo drawImage等轨功。
6、postMessage
解決跨域容达、跨窗口消息傳遞問題古涧。原理是:html5新增的API,不管同不同源花盐,都可以向其他window對(duì)象發(fā)送消息羡滑。postMessage只管消息的發(fā)送,而不用等待消息處理完成算芯,僅僅是將消息插入到對(duì)應(yīng)窗口的消息隊(duì)列中即可(不阻塞程序)柒昏。
// 調(diào)用postmessage的window對(duì)象為要接收消息的那個(gè)window對(duì)象
// origin指明要接收消息的window對(duì)象所在的域,不需指明時(shí)熙揍,可以設(shè)置 *
window.top.postMessage(data, origin);
//要接收消息的window對(duì)象注冊(cè)message事件
window.addEventListener('message', function(e){
//e.data e.source e.origin
})
7职祷、history API
實(shí)現(xiàn)無刷新跳轉(zhuǎn),減少網(wǎng)絡(luò)請(qǐng)求届囚、改進(jìn)用戶體驗(yàn)等有梆。
history.pushState(data, title, url)
history.replaceState(data, title, url)
window.onPopState(event)
8、FileReader定義異步讀取本地文件的API奖亚,詳見:
http://www.reibang.com/p/75e84ddf9339
9淳梦、Mutation observer 監(jiān)控DOM元素的變化,防止xss攻擊昔字。
用法:實(shí)例化一個(gè)觀察者對(duì)象,傳入監(jiān)控對(duì)象以及監(jiān)控設(shè)置首繁。
參考:http://www.reibang.com/p/b5c9e4c7b1e1
// Firefox和Chrome早期版本中帶有前綴
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
// 選擇目標(biāo)節(jié)點(diǎn)
var target = document.querySelector('#some-id');
// 創(chuàng)建觀察者對(duì)象
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type);
});
});
// 配置觀察選項(xiàng):
var config = { attributes: true, childList: true, characterData: true }
// 傳入目標(biāo)節(jié)點(diǎn)和觀察選項(xiàng)
observer.observe(target, config);
// 隨后,你還可以停止觀察
observer.disconnect();