一、瞭解cookie的不足之處,引入webstorage的概念
二、學習而且掌握webstorage有哪兩種
三、學習而且掌握sessionStorage
四、學習而且掌握localStorage
五、反覆練習localStorage的用法
六、掌握離線存儲技術
七、掌握多媒體標籤的一些基本屬性
八、自主開發出一個自定義視頻播放器的控件
九、熟悉使用webwoker
十、瞭解webSocket的原理javascript
不少時候咱們會存儲用戶本地信息到電腦上,例如:比方說用戶有一個填充了一半的長表格,而後忽然網絡鏈接斷開了,這樣用戶但願你能存儲這些信息到本地,當網絡恢復的時候,他想獲取這些信息而後發送到服務器進行存儲 現代瀏覽器擁有的存儲被叫作「LocalStorage」,你能夠存儲這些信息css
本地存儲沒有生命週期,它將保留知道用戶從瀏覽器清除或者使用Javascript代碼移除html
屬性 | 類型 | 描述 |
---|---|---|
key |
string | 被修改的鍵。 |
oldValue |
any | 修改前的值(若是是增長新的鍵值,則該屬性爲null) |
newValue |
any | 修改後的值(若是是刪除鍵值,則該屬性爲null) |
url * |
string | 觸發當前存儲事件的頁面的url |
* 注意: url 屬性早期的規範中爲uri屬性。 有些瀏覽器發佈較早,沒有包含這一變動。爲兼容性考慮,使用url屬性前,你應該先檢查它是否存在,若是沒有url屬性,則應該使用uri屬性 |
總結:若是須要判斷是否支持本地存儲,能夠經過window.sessionStorage或者window.localStorage去判斷。前端
sessionStorage會話結束後即清空,且同一窗口不一樣標籤下的頁面sessionStorage不共用java
dom操做:jquery
<html lang="zh-hans" manifest="offline.appcache">
text/cache-manifest manifest text/cache-manifest appcache
CACHE MANIFEST # v1 #offline.appcache 所引用的頁面默認自動緩存 #這裏通常離線緩存長期不變的內容 CACHE: ../js/jquery-2.0.min.js ../css/bootstrap.css #頁面其餘其餘資源,*表示除了緩存(CACHE)的資源,其餘資源都走線上 #若不配置,則除CACHE外其餘資源不會被加載 NETWORK: * #當服務器掛了(或請求資源不存在時),a連接資源請求失敗了,採用「替補"方式 FALLBACK: gallery-1.html offline.html
images/ images/offline.png
//在谷歌瀏覽器地址欄輸入 chrome://appcache-internals
window.applicationCache.addEventListener("updateready", function(){ window.location.reload() });由上例能夠知道,緩存的不僅是顯示定義的文件,好比上例中的 applicationcache/時便會默認保存index.html爲映射的數據,而且包含offline.appcache文件,不少時候會遇到一次文件 更新線上總是不更新,這個時候隨便在manifest配置文件中作一點修改便可更新。
// 監測用戶是否在線 function onlineStatus() { if (navigator.onLine) { var status = document.getElementById('online-status') status.innerHTML = '在線' status.className = 'badge success' } else { status.innerHTML = '離線' status.className = 'badge' } } window.addEventListener('online', onlineStatus, false) window.addEventListener('offline', onlineStatus, false)
a)、離線瀏覽--緩存數據(新聞、閱讀、視頻)
b)、本地保存用戶的操做數據(郵箱軟件----離線編輯、在線發送)web
a)、Application Cache 本地緩存所應用的文件
b)、WEB SQL 關係型數據庫,經過SQL數據訪問
c)、IndexDB 索引數據庫chrome
a)、Manifest文件
b)、Application Cache文件
c)、特色
Manifest文件必須有變化才更新
一次必須更新Manifest文件中的全部文件
下次才生效數據庫
Web Workers 是在HTML5中新增的,用來在web應用程序中實現後臺處理的一種技術
在HTML4中,js建立的程序都是單線程的,若是花費時間比較長的話web界面就會長時間沒有響應,最惡劣的狀況還會跳出一個腳本提示框: 提示腳本運行時間過長,是否繼續。。。。因而就引出了本文的主角:Web Workers APIbootstrap
postMessage() 方法 - 它用於向 HTML 頁面傳回一段消息。
onmessage() 方法 - 收數據,數據爲e.data。
如需終止 web worker,並釋放瀏覽器/計算機資源,請使用 terminate() 方法:
咱們能夠作什麼: 1.能夠加載一個JS進行大量的複雜計算而不掛起主進程,並經過postMessage,onmessage進行通訊 2.能夠在worker中經過importScripts(url)加載另外的腳本文件 3.可使用 setTimeout(), clearTimeout(), setInterval(), and clearInterval() 4.可使用XMLHttpRequest來發送請求 5.能夠訪問navigator的部分屬性 有那些侷限性: 1.不能跨域加載JS 2.worker內代碼不能訪問DOM 3.各個瀏覽器對Worker的實現不大一致,例如FF裏容許worker中建立新的worker,而Chrome中就不行 4.不是每一個瀏覽器都支持這個新特性