iOS開發和localStorage/sessionStorage

来源:http://www.cnblogs.com/zhanggui/archive/2016/07/29/5719509.html
-Advertisement-
Play Games

一、前言 在近期的工作中,有前端同學告訴我要清除localStorage,我當時對localStorage完全沒有概念,所以就在w3c看了一下相關的內容,下麵簡單的介紹一下。算是對iOS開發者普及H5的一些常識吧,高手請直接忽略。 二、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開發者有幫助。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 事件流講解來襲,嘎嘎嘎嘎嘎 1.事件流:描述的是在頁面中接受事件的順序。 2.事件冒泡:由最具體的元素接收,然後逐級向上傳播至最不具體的元素的節點(文檔)。 3.事件捕獲:最不具體的節點先接收事件,而最具體的節點應該是最後接收事件。 事件處理: 1.HTML事件處理:直接添加到HTML結構中(例:之 ...
  • bind()函數是在 ECMA-262 第五版才被加入;它可能無法在所有瀏覽器上運行。這就需要我們自己實現bind()函數了 簡單實現bind()方法: 考慮到函數柯里化的情況,我們可以構建一個更加健壯的bind(): 這次的bind()方法可以綁定對象,也支持在綁定的時候傳參。 繼續,Javasc ...
  • 一、自定義Dialog繼承Dialog 二、為Dialog設置樣式 在style中建立新樣式繼承 設置樣式去掉邊框 去掉標題 設置視窗透明 設置點擊對話框外邊可以消失等 設置動畫 進入動畫 退出 三、在構造方法中設置樣式 四、設置佈局 佈局文件就是2個TextView 五、重寫show方法,設置寬度 ...
  • 引用 "retrofit" : "com.squareup.retrofit2:retrofit:2.0.1", "retrofit-adapter" : "com.squareup.retrofit2:adapter-rxjava:2.0.1", "retrofit-converter" : "c ...
  • 剛開始接觸Swift,感覺是簡單一些,但是有一些不習慣,沒看基礎知識,直接看demo! 可以和http://www.cnblogs.com/hissia/p/5668513.html裡面的進行對比,挺容易掌握 直接上代碼: ...
  • 主要練習非同步任務和LrcCache緩存 ...
  • Base介面 ...
  • ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...