天天看點

Web持久化存儲Web SQL、Local Storage、Cookies(常用)

在浏覽器用戶端記錄一些資訊,有三種常用的web資料持久化存儲的方式,分别是web sql、local storage、cookies。

web sql

作為html5本地資料庫,可通過一套api來操縱用戶端的資料庫(關系資料庫),下面是支援浏覽器情況。

Web持久化存儲Web SQL、Local Storage、Cookies(常用)

鑒于pc浏覽器支援情況,我找了淘寶、京東、攜程、起點、優酷網站,并沒有用web sql記錄用戶端資訊。在移動端比較适用,特别是對于hybrid應用,更是得心應手。

接口:

opendatabase

transaction

executesql

1.打開連接配接并建立資料庫

2.建立資料表

Web持久化存儲Web SQL、Local Storage、Cookies(常用)
Web持久化存儲Web SQL、Local Storage、Cookies(常用)

3.添加資料

Web持久化存儲Web SQL、Local Storage、Cookies(常用)
Web持久化存儲Web SQL、Local Storage、Cookies(常用)

4.查詢資料

Web持久化存儲Web SQL、Local Storage、Cookies(常用)
Web持久化存儲Web SQL、Local Storage、Cookies(常用)

特點:

1.有事務

2.查詢資料,傳回資料類型正确

3.被w3c丢棄的規範,但被廣泛支援。

local storage

html5提供了沒有時間限制在用戶端存儲資料的手段,以鍵值對存取,網站隻能通路其自身的資料,浏覽器支援如下。

Web持久化存儲Web SQL、Local Storage、Cookies(常用)

ps:截圖來自網上資料

有個比較有趣的東西,我在起點、京東、優酷的localstorage找個共同的變量,就是jw_bl,裡面的資料是(我猜不到這個屬性是什麼簡寫的):

寫資料:

讀資料:

ps:要注意的是,擷取localstorage的值是字元串,不管你指派的是什麼類型。

1. 擷取值是字元串類型

2. 容量有大約5m限制

3. 不會進行網絡傳輸

cookies

cookies是最常用的web資料持久化手段,所有浏覽器都支援。cookie是由伺服器端生成,發送給user-agent(一般是浏覽器),浏覽器會将cookie的key/value儲存到某個目錄下的文本檔案内,下次請求同一網站時就發送該cookie給伺服器(前提是浏覽器設定為啟用cookie)。單點登入(sso)是個很經典的使用。

ps:當然也可以在網頁設定cookies

cookie數量和長度的限制

每個domain最多隻能有20條(某些浏覽器會多一些)cookie,每個cookie長度不能超過4kb,否則會被截掉。

cookie生命周期

cookie在生成時就會被指定一個expire值,這就是cookie的生存周期,在這個周期内cookie有效,超出周期cookie就會被清除。将cookie的生存周期設定為“0”或負值,就馬上清除cookie。

cookie安全性問題

如果cookie被人攔截了,那人就可以取得所有的session資訊。即使加密也與事無補,因為攔截者并不需要知道cookie的意義,他隻要原樣轉發cookie就可以達到目的了。或者是可收集這些資訊做一些事。

cookies請求附帶

cookies每次請求會被發送到伺服器,占用額外帶寬,示例參數如下(截了一個鬥魚網站請求的圖)。

ps:cookies參數需要使用抓包工具(類似fiddler)才能看到,chrome開發者調試工具看不到的。

Web持久化存儲Web SQL、Local Storage、Cookies(常用)

cookies的javascript程式設計

下面代碼來自網上資料:

建立cookies:

Web持久化存儲Web SQL、Local Storage、Cookies(常用)
Web持久化存儲Web SQL、Local Storage、Cookies(常用)

取值cookies:

Web持久化存儲Web SQL、Local Storage、Cookies(常用)
Web持久化存儲Web SQL、Local Storage、Cookies(常用)

删除cookies:

清除所有cookies:

因為cookies值可能存在“;=”字元,是以清除的函數還沒一那麼簡單,要照着自己工程看着寫。

總結

web sql一般在移動端使用,localstorage pc和移動端都适用,而cookies是所有持久化存儲支援最好的。可根據它們本身的特性選擇自己需要使用的方式。

本文為原創文章,轉載請保留原出處,友善溯源,如有錯誤地方,謝謝指正。

轉載:http://www.cnblogs.com/lovesong/p/4976233.html