中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

html5中的localstorage有什么用

發布時間:2021-03-03 10:30:45 來源:億速云 閱讀:233 作者:清風 欄目:web開發

這篇“html5中的localstorage有什么用”除了程序員外大部分人都不太理解,今天小編為了讓大家更加理解“html5中的localstorage有什么用”,給大家總結了以下內容,具有一定借鑒價值,內容詳細步驟清晰,細節處理妥當,希望大家通過這篇文章有所收獲,下面讓我們一起來看看具體內容吧。

html有什么特點

1、簡易性:超級文本標記語言版本升級采用超集方式,從而更加靈活方便,適合初學前端開發者使用。 2、可擴展性:超級文本標記語言的廣泛應用帶來了加強功能,增加標識符等要求,超級文本標記語言采取子類元素的方式,為系統擴展帶來保證。  3、平臺無關性:超級文本標記語言能夠在廣泛的平臺上使用,這也是萬維網盛行的一個原因。 4、通用性:HTML是網絡的通用語言,它允許網頁制作人建立文本與圖片相結合的復雜頁面,這些頁面可以被網上任何其他人瀏覽到,無論使用的是什么類型的電腦或瀏覽器。

localstorage在瀏覽器的API有兩個:localStorage和sessionStorage,存在于window對象中:localStorage對應window.localStorage,sessionStorage對應window.sessionStorage。 

HTML API

localstorage在瀏覽器的API有兩個:localStorage和sessionStorage,存在于window對象中:localStorage對應window.localStorage,sessionStorage對應window.sessionStorage。

localStorage和sessionStorage的區別主要是在于其生存期。

基本使用方法

localStorage.setItem("b","isaac");//設置b為"isaac"
var b = localStorage.getItem("b");//獲取b的值,為"isaac"
var a = localStorage.key(0); // 獲取第0個數據項的鍵名,此處即為“b”
localStorage.removeItem("b");//清除b的值
localStorage.clear();//清除當前域名下的所有localstorage數據

作用域

html5中的localstorage有什么用

這里的作用域指的是:如何隔離開不同頁面之間的localStorage(總不能在百度的頁面上能讀到騰訊的localStorage吧,哈哈哈)。

localStorage只要在相同的協議、相同的主機名、相同的端口下,就能讀取/修改到同一份localStorage數據。

sessionStorage比localStorage更嚴苛一點,除了協議、主機名、端口外,還要求在同一窗口(也就是瀏覽器的標簽頁)下。

生存期

localStorage理論上來說是永久有效的,即不主動清空的話就不會消失,即使保存的數據超出了瀏覽器所規定的大小,也不會把舊數據清空而只會報錯。但需要注意的是,在移動設備上的瀏覽器或各Native App用到的WebView里,localStorage都是不可靠的,可能會因為各種原因(比如說退出App、網絡切換、內存不足等原因)被清空。

sessionStorage的生存期顧名思義,類似于session,只要關閉瀏覽器(也包括瀏覽器的標簽頁),就會被清空。由于sessionStorage的生存期太短,因此應用場景很有限,但從另一方面來看,不容易出現異常情況,比較可靠。

數據結構

localstorage為標準的鍵值對(Key-Value,簡稱KV)數據類型,簡單但也易擴展,只要以某種編碼方式把想要存儲進localstorage的對象給轉化成字符串,就能輕松支持。舉點例子:把對象轉換成json字符串,就能讓存儲對象了;把圖片轉換成DataUrl(base64),就可以存儲圖片了。另外對于鍵值對數據類型來說,“鍵是唯一的”這個特性也是相當重要的,重復以同一個鍵來賦值的話,會覆蓋上次的值。

過期時間

很遺憾,localstorage原生是不支持設置過期時間的,想要設置的話,就只能自己來封裝一層邏輯來實現:

function set(key,value){
  var curtime = new Date().getTime();//獲取當前時間
  localStorage.setItem(key,JSON.stringify({val:value,time:curtime}));//轉換成json字符串序列
}
function get(key,exp)//exp是設置的過期時間
{
  var val = localStorage.getItem(key);//獲取存儲的元素
  var dataobj = JSON.parse(val);//解析出json對象
  if(new Date().getTime() - dataobj.time > exp)//如果當前時間-減去存儲的元素在創建時候設置的時間 > 過期時間
  {
    console.log("expires");//提示過期
  }
  else{
    console.log("val="+dataobj.val);
  }
}

容量限制

目前業界基本上統一為5M,已經比cookies的4K要大很多了,省著點用吧騷年。

域名限制

由于瀏覽器的安全策略,localstorage是無法跨域的,也無法讓子域名繼承父域名的localstorage數據,這點跟cookies的差別還是蠻大的。

異常處理

localstorage在目前的瀏覽器環境來說,還不是完全穩定的,可能會出現各種各樣的bug,一定要考慮好異常處理。我個人認為localstorage只是資源本地化的一種優化手段,不能因為使用localstorage就降低了程序的可用性,那種只是在console里輸出點錯誤信息的異常處理我是絕對反對的。localstorage的異常處理一般用try/catch來捕獲/處理異常。

如何測試用戶當前瀏覽器是否支持localstorage

目前普遍的做法是檢測window.localStorage是否存在,但某些瀏覽器存在bug,雖然“支持”localstorage,但在實際過程中甚至可能出現無法setItem()這樣的低級bug。因此我建議,可以通過在try/catch結構里set/get一個測試數據有無出現異常來判斷該瀏覽器是否支持localstorage,當然測試完后記得刪掉測試數據哦。

瀏覽器兼容性

html5中的localstorage有什么用

如何調試

html5中的localstorage有什么用

在chrome開發者工具里的Resources - Local Storage面板以及Resources - Session Storage面板里,可以看到當前域名下的localstorage數據。

在ios設備上無法重復setItem()

另外,在iPhone/iPad上有時設置setItem()時會出現詭異的QUOTA_EXCEEDED_ERR錯誤,這時一般在setItem之前,先removeItem()就ok了。

感謝你的閱讀,希望你對“html5中的localstorage有什么用”這一關鍵問題有了一定的理解,具體使用情況還需要大家自己動手實驗使用過才能領會,快去試試吧,如果想閱讀更多相關知識點的文章,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

横峰县| 嵩明县| 易门县| 博客| 临漳县| 顺义区| 酒泉市| 尤溪县| 岳阳市| 巴林右旗| 黄大仙区| 平乐县| 临猗县| 焉耆| 金昌市| 吉木萨尔县| 平顺县| 曲阜市| 仁寿县| 屏东县| 焉耆| 西乌珠穆沁旗| 承德县| 尚义县| 富源县| 宣威市| 南岸区| 斗六市| 雷州市| 沂水县| 阿克| 日照市| 南安市| 拜城县| 望都县| 赤水市| 庆元县| 武威市| 弋阳县| 阜康市| 满洲里市|