iOS開發和localStorage/sessionStorage


一、前言

  在近期的工作中,有前端同學告訴我要清除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值清空某個localStorage

localStorage.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開發者有幫助。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM