標籤:
一、前言
在近期的工作中,有前端同學告訴我要清除localStorage,我當時對localStorage完全沒有概念,所以就在w3c看了一下相關的內容,下面簡單的介紹一下。算是對iOS開發人員普及H5的一些常識吧,高手請直接忽略。
二、localStorage && sessionStorage
在HTML5中,為了在用戶端儲存資料,HTML提供了兩種在用戶端儲存資料的新方法:
* localStorage:沒有時間限制的資料存放區。
* sessionStorage:針對一個session的資料存放區,也就是重新開啟頁面sessionStorage失效。
在之前,都是用cookie來完成的,但是cookie不適合大量的資料存放區,因為他們由每個對伺服器的請求來傳遞,所以速度慢效率也不高。在HTML5中,使用JavaScript來訪問和儲存資料。
1、localStorage
localStorage儲存的資料沒有時間限制。只要不被清理會一直存在。下面簡單介紹一下相關方法以及使用。
①、判斷瀏覽器是否支援localStorage。
我們只需要書寫如下代碼,然後在瀏覽器開啟網頁即可:
<!DOCTYPE html><html><head> <title>LocalStorage</title> <meta charset="utf-8"></head><body> <script type="text/javascript"> if (window.localStorage) { alert("瀏覽器支援localStorage"); }else { alert("瀏覽器不支援localStorage"); } </script></body></html>
②、localStorage儲存執行個體
<!DOCTYPE html><html><head> <title>LocalStorage</title> <meta charset="utf-8"></head><body> <script type="text/javascript"> if (localStorage.requestcout) { localStorage.requestcout = Number(localStorage.requestcout)+1; }else { localStorage.requestcout = 1; } document.write("(這裡是重新整理就算一次訪問頁面)本網頁的訪問量是:"+localStorage.requestcout+"次"); </script></body></html>
現在直接在瀏覽器開啟該html頁面。然後重新整理,結果如下:
這裡面我重新整理了13次,然後結果是13次。當我關閉剛才的網頁再次開啟的時候,結果如下:
可以看出,瀏覽器儲存了原來的次數開啟控制台可以看到:
③、儲存/訪問localStorage
localStorage.setItem("name","zhanggui");localStorage["name"] = "zhanggui";var valure = localStorage.getItem("name");var valure = localStorage["name"];
它的儲存類似於iOS中的字典。這樣就可以將name這個key存入value:zhanggui,然後取出。
④、清除localStorage
localStorage.removeItem("name"); //根據key值清空某個localStoragelocalStorage.clear(); //這裡是講所有的localStorage清空
2、sessionStorage
sessionStorage和localStorage的操作差不多。唯一的區別就是localStorage每次開啟頁面還會存在,而sessionStorage每次開啟頁面都會初始化。就像剛才統計訪問頁面次數:
如果用sessionStorage來儲存,那麼下次開啟頁面他的訪問次數是1,而不是累加上次請求次數。
三、iOS對localStorage && sessionStorage的支援
直接寫了一個storage.html來進行測試。代碼在這裡:
這裡進行了測試,結果是支援localStorage。具體可以參見代碼。當我第一次開啟的時候,運行結果如下:
當我重新開啟該應用的時候,結果如下:
當我把整個項目刪除重新安裝,結果又是1次。
其中清空localStorage的方式如下:
[self.contentWebView stringByEvaluatingJavaScriptFromString:@"localStorage.clear()"];
這樣就可以清空localStorage。
sessionStorage就不在多介紹了,讀者可以自行測試。
四、結語
簡單就介紹這麼多了。希望對iOS開發人員有協助。
iOS開發和localStorage/sessionStorage