web存儲之webstorage

来源:http://www.cnblogs.com/qqblog/archive/2017/06/18/7044726.html
-Advertisement-
Play Games

web存儲分類 客戶端和服務端 認識web存儲 隨著web應用的發展,是的客戶端存儲的用途越來越多,然而實現客戶端端存儲的方式也是越來越多樣化。最簡單最相容的方式就是cookie,但作為真正的客戶端存儲cookie還是存在著許許多多的弊端的。同時,各種瀏覽器也有屬於自己的存儲方式。例如,IE6以及以 ...


  • web存儲分類
    • 客戶端和服務端 
  • 認識web存儲
    • 隨著web應用的發展,是的客戶端存儲的用途越來越多,然而實現客戶端端存儲的方式也是越來越多樣化。最簡單最相容的方式就是cookie,但作為真正的客戶端存儲cookie還是存在著許許多多的弊端的。同時,各種瀏覽器也有屬於自己的存儲方式。例如,IE6以及以上版本中可以使用userData Behavior,在Firefox中可以使用globalStorage,而在Flash插件還可以使用Flash Local Storage,但是這幾種方式存在著相容性等方面的弊端,對於客戶端的存儲不屬於最好的方式。
    • 由於上述情況,html5中增加的了幾種新的存儲方式。web Database和web Storage。  
  • 各種方式存儲之間的區別
    • cookie的優缺點
      • cookie工作原理
        • cookie作為一種客戶端存儲的方式,主要採用的是文本存儲。當有應用程式使用cookie的時候,伺服器會將cookie發送到客戶端,客戶端進行保存。當用戶進行下次訪問時,會將客戶端存儲的cookie發送到伺服器上面。在開發中,最典型的案例就是用來存儲用戶信息。  
      • 優點
        • 簡單方便
        • 瀏覽器負責發送數據
        • 瀏覽器自己管理不同站點的數據,不容易發生數據的錯亂等情況  
      • 缺點 
        • 正如上面講到的cookie工作原理,我們通過服務端到客戶端,客戶端到伺服器之間的通信。這樣造成有的不必要的帶寬消耗,同時也影響頁面的載入速度導致用戶的體驗性變差。
        • 存儲的數據大小限制,cookie只能存儲4kb大小的數據。
        • 安全性。cookie的數據以文本的方式存在客戶端上面,安全性很低,很容易造成數據被竊取。
        • 數量限制。多數瀏覽器可存儲的cookie數量為30-50個,也有的瀏覽器支持300個,而IE6只支持20個。
        • 數據完整性。當我們客戶端設置為最高安全級別的時候,我們的cookie會失效。     
    • web storage的優缺點
      • 認識webstorage
        • 這是html5新增的客戶端存儲數據的方式,提供了易於操作的api,只需要設置鍵值的方式即可。在每個用戶域下麵存儲的數據大小在5M-10M。包含下麵的sessionStorage和localStorage。同時,還包括web Database。 
      • 優點
        • 存儲的數據大小更大。
        • 存儲的數據保存在客戶端,不需要與瀏覽器進行通信,這樣可以減少我們的帶寬消耗。
        • 提供了豐富易用的API,使得開發者更加容易的開發。
        • 使用獨立的存儲空間。每個域下麵都有獨立的存儲空間,每個空間完全獨立,可以避免數據的錯亂(這一點其實和cookie沒什麼太大的區別)。    
      • 缺點
        • 由於每個域下麵存儲的數據都是獨立的空間,我們在一個域下麵是不能使用其他域下麵的數據。 
        • 由於數據在沒有我們進行主動的刪除的情況下,存儲的數據是一直保存在的並且數據沒進行加密處理,很容易造成數據的竊取。 
      • localStorage
        • localStorage是一種沒有時間限制的存儲方式,除非我們自己主動的清除數據不然數據是不會丟失的。  
      • sessionStorage 
        • sessionStorage是針對session的存儲方式,當我們瀏覽器或者操作視窗執行了關閉操作,sessionStorage存儲的數據將會丟失。同時只能在同一個會話的頁面中才能使用。
      • 瀏覽器支持    
        • IE8.0以上,Firefox3.0以上,opera10.5以上,chrome3.0以上,safari4.0以上。
            
  • 實例代碼
    • 檢測當前瀏覽器是否支持
    •     <script type="text/javascript">
              // 驗證當前的瀏覽器是否支持localStorage和sessionStorage
              window.onload = function(){
                  if (window.localStorage && window.sessionStorage) {
                      alert("你的瀏覽器支持localStorage和sessionStorage");
                  }
              }
          </script>

       

       
    • 基本使用 
      • 註意:localStorage和sessionStorage存儲的都是字元串對象。  
      • 創建
        • <script type="text/javascript">
                  // 創建均使用localStorage做示例,sessionStorage語法方式和localStorage是一樣的,localStorage(key, value);或者localStorage.key = "value";
                  window.onload = function(){
                      if (window.localStorage) {
                          localStorage.setItem("userName", "張三");
                      }
                  }
              </script>

           

              
      • 獲取存儲
          • <script type="text/javascript">
                    // 可以直接使用localStorage.getItem(key);也可以使用localStorage.key;
                    window.onload = function(){
                        if (window.localStorage && window.sessionStorage) {
                            localStorage.setItem("userName", "張三");
                            alert(localStorage.getItem("userName"));
            } } </script>

             

              
      • 刪除存儲 
          • <script type="text/javascript">
                    // localStorage.removeItem(key):根據鍵名刪除指定存儲,localStorage.clear():刪除指定所有存儲,當Storage對象為空時,也是可執行的。
                    window.onload = function(){
                        if (window.localStorage && window.sessionStorage) {
                            localStorage.setItem("userName", "hello,world!");
               localStorage.removeItem("userName");
            localStorage.clear(); } } </script>

             

                

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

-Advertisement-
Play Games
更多相關文章
  • A 調用攝像頭拍照,自定義裁剪編輯頭像,頭像圖片色度調節B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,快速開發利器)+快速表單構建器 freemaker模版技術 ,0個代碼不用寫,生成完整的一個模塊,帶頁面、建表sql腳本,處理類,service等完整模塊C 集成阿裡巴巴資料庫連接池 ...
  • css選擇器一個可以選擇樣式的工具, 這裡適用於無論是內部代碼還是外部引用 abc.css 這類型的文件. 基本選擇器*{ }就是一個簡單的*, 代表應用於全部. 不適合於個性化細緻化處理的頁面, 副作用是它會覆蓋原有的style, 不管好壞 *和繼承無關, 無論是否一級標簽,是否子標簽, 一律收到... ...
  • ES 2015/6 新增內容還是比較多的,這裡僅大綱性的列舉一下(不一定全面)這些特性。其實,每個點挖進去都會有很多學問在裡頭,本文旨在彙總,所以不對這些特性進行深層次的討論及研究。隨後有時間的話,在單獨寫幾篇博客對常用的點進行深挖,與大家進行深度交流。 ...
  • ::before與::after兩個偽元素其實是CSS3中的內容,然而實際上在CSS2中就已經有了這兩者的身影,只不過CSS2中是前面加一個冒號來表示(:before和:after)。今天主要講講這兩個偽元素該如何使用。 一、與普通元素一樣可以給其添加樣式 比如說我想在文字前面添加一個圖標,如果我用 ...
  • 本文提到的網站性能指網站的響應速度,這也符合絕大部分人對於網站性能的理解:訪問快速的網站性能好,反之,訪問速度越慢,則網站性能越差。本文總結的優化方法是巨集觀的工程層面的方法,並不包含微觀的語言語法層面的方法,例如,JS、CSS的語法優化,這一部分同樣影響網站的性能,但語言語法層面的優化更多的是取決於 ...
  • 雖然時間軸早已不是什麼新鮮事物了,個人只是感興趣所以就研究一下,最近從網上搜索了一個個人感覺比較好的時間軸demo,下載下來研究了一下並做了下修改.具體的效果如下圖:(該demo實現的是滾動載入圖片) 代碼地址:http://files.cnblogs.com/files/cby-love/html ...
  • Canvas繪圖環境中有些屬於立即繪製圖形方法,有些繪圖方法是基於路徑的。 立即繪製圖形方法僅有兩個strokeRect(),fillRect(),雖然strokezText(),fillText()方法也是立即繪製的,但是文本不算是圖形。 基於路徑的繪製系統 大多數繪製系統,如:SVG(Scala ...
  • string對象 string對象的兩種創建 var a="hello"; var b=new String("hello"); //下麵是方法 //charAt()根據下標 找字元串中的字元 alert(a.charAt(3));//根據下標返回字元串某個字元 alert(a.charAt(10) ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...