1. video/audio視頻/音頻
<video> 標(biāo)簽定義視頻,比如電影片段或其他視頻流。
目前,<video> 元素支持三種視頻格式:MP4、WebM、Ogg。
語法:<video src=”” controls autoplay loop></video>
Controls 向用戶顯示控件,比如播放按鈕
Autoplay 自動播放
Loop循環(huán)播放
-
<audio> 標(biāo)簽定義聲音,比如音樂或其他音頻流。
目前,<audio> 元素支持的3種文件格式:MP3、Wav、Ogg。
語法:<audio src=”” controls autoplay loop></audio>
2. canvas 繪畫
canvas就像一塊幕布,然后通過JavaScript動態(tài)地在這個區(qū)域中繪制圖形;它允許我們繪制直線、圓、矩形等基本形狀,以及圖像和文字
3. geolocation 定位
用于定位用戶的位置
地理位置 API 通過navigator.geolotion提供。
獲取當(dāng)前定位getCurrentPosition()方法用來獲取設(shè)備當(dāng)前位置。
這會異步地請求獲取用戶位置,并查詢定位硬件來獲取最新信息。當(dāng)定位被確定后,定義的回調(diào)函數(shù)就會被執(zhí)行。
navigator.geolocation.getCurrentPosition(function(position) { do_something(position.coords.latitude, position.coords.longitude); });
監(jiān)視定位getCurrentPosition() 用于注冊監(jiān)聽器,在設(shè)備的地理位置發(fā)生改變的時候自動被調(diào)用。也可以選擇特定的錯誤處理函數(shù)。")
使用該函數(shù)不需要先調(diào)用getCurrentPosition() 它與 getCurrentPosition() 接受相同的參數(shù),但回調(diào)函數(shù)會被調(diào)用多次。
var watchID = navigator.geolocation.watchPosition(function(position) { do_something(position.coords.latitude, position.coords.longitude); });
-
WebSocket前后端雙向通訊
WebSocket是一種網(wǎng)絡(luò)通信協(xié)議, 一種由HTML5 開始提供的、在單個 TCP 連接上進(jìn)行全雙工通訊的協(xié)議。它和HTTP協(xié)議的最大區(qū)別在于:HTTP 協(xié)議是一種無狀態(tài)的、無連接的、單向的應(yīng)用層協(xié)議當(dāng)客戶端想要知道服務(wù)端的變化時,HTTP協(xié)議必須使用“輪詢”的方式,效率很低;而WebSocket只需一次連接,便可以讓服務(wù)端直接向客戶端推送信息,從而告別輪詢。
Node環(huán)境下運行,需要下載ws模塊
5.localStorage / sessionStorage代替cookie本地存儲
localStorage: 方法存儲的數(shù)據(jù)沒有時間限制。
sessionStorage: 方法針對一個 session 進(jìn)行數(shù)據(jù)存儲。當(dāng)用戶關(guān)閉瀏覽器窗口后,數(shù)據(jù)會被刪除。
localStorage 和sessionStorage也可存儲Json對象,存儲時,通過JSON.stringify()將對象轉(zhuǎn)換為文本格式;讀取時,通過JSON.parse()將文本轉(zhuǎn)換回對象。
都是保存在瀏覽器端、且同源的
Cookie只能存儲4k左右,localstorage和sessionstroage可以達(dá)到5M或更大
sessionStorage不在不同的瀏覽器窗口中共享,即使是同一個頁面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的
6. 文件拖拽
File: 代表一個文件對象
FileList: 代表一個文件列表,類數(shù)組對象FileReader 用于從文件中提取內(nèi)容FileWrite 用于向文件中寫入類容
ondragover事件在可拖動元素或選取的文本正在拖動到放置目標(biāo)時觸發(fā)。
7. WebWorker js多線程,提高性能
Web Worker 是HTML5標(biāo)準(zhǔn)的一部分,這一規(guī)范定義了一套API,它允許一段JavaScript程序運行在主線程之外的另外一個線程中。工作線程允許開發(fā)人員編寫能夠長時間運行而不被用戶所中斷的后臺程序, 去執(zhí)行事務(wù)或者邏輯,并同時保證頁面對用戶的及時響應(yīng),可以將一些大量計算的代碼交給web worker運行而不凍結(jié)用戶界面。
8. manifest 離線緩存
能夠讓你的Web應(yīng)用程序指定哪些文件可以緩存在本地,使得你的網(wǎng)絡(luò)斷開時依然可以通過本地的緩存來進(jìn)行訪問瀏覽。
因為manifest文件必須是一個MIME type為text/cache-manifest類型的存在。文件后綴名可以自定義(建議為.appcache)所以我們需要現(xiàn)在服務(wù)端將.appcache后綴的文件類型聲明為text/cache-manifest。以apache為例,我們需要在httpd.conf中加上:AddType text/cache-manifest .appcache