HTML 5瀏覽器端數據庫
為什么要使用瀏覽器端數據庫:隨着瀏覽器處理能力的增強,越來越多的雙喜鳥網站開始考慮在客戶端存儲大量的數據,這可以減少用戶從服務器獲取數據的等待時間。
1。本地存儲-本地存儲可以長時間存儲數據而不受時間限制。
可以存儲:數組、JSON數據、圖片、腳本、樣式文件
復制代碼
功能測試()。{
如果(窗口。localstorage)//確定瀏覽器是否支持localstorage
var ls=窗口。本地存儲;
LSsetitem(“name”,“zhang san”);和//設置值
var名稱=ls。getItem(“name”);值
LSremoveitem(“name”);//刪除數據
}否則{
alert(“瀏覽器不支持本地存儲”);
}
}
復制代碼
限制:存儲數據不能在子域名之間共享;超出存儲范圍,可以使用LRU和FIFO技術進行處理;
2。會話存儲生命周期是當前窗口或選項卡。一旦窗口或選項卡永久關閉,通過會話存儲存儲存儲的所有數據將被清空。
索引數據庫
1。使用indexeddb的原因
現有的瀏覽器端數據存儲方案不適合存儲大量數據:cookie不超過4KB,每個請求都將被發送回服務器;windows.name屬性不安全。
沒有統一的標准,本地存儲在2.5MB到10MB之間(不同的瀏覽器)。因此需要一種新的解決方案,這就是indexeddb的背景。
2。什么是索引數據庫
一般來說,indexeddb是一個瀏覽器端數據庫,可以由Web腳本創建和操作。它允許存儲大量數據,提供查找接口,還可以索引。
這些是本地存儲沒有的。就數據庫類型而言,indexeddb不是關系數據庫(它不支持SQL查詢語句),而是更接近於nosql數據庫。
三。索引數據庫的特性。
(1)鍵值對存儲。indexeddb使用對象存儲來存儲數據。所有類型的數據都可以直接存儲,包括javascript對象。在對象倉庫中,
數據以“鍵值對”的形式存儲。每個數據都有其對應的鍵名。密鑰名是唯一的,不能重復,否則將引發錯誤。
(2)異步性。indexeddb操作不會鎖定瀏覽器,與同步的本地存儲不同,用戶仍然可以執行其他操作。異步設計的目的是防止大量數據的讀寫,降低網頁的性能。
(3)支持服務。indexeddb支持事務,這意味着在一系列操作步驟中,只要一個步驟失敗,整個事務就會被取消。數據庫返回到事務發生之前的狀態,並且不存在只重寫部分數據的情況。
(4)indexeddb也受同一個域的限制,每個數據庫對應創建的數據庫的域名。不同域名的網頁只能訪問自己域名下的數據庫,不能訪問其他域名下的數據庫。
(5)indexeddb的存儲空間比本地存儲大得多,一般不小於250MB。IE的存儲容量為250MB,Chrome和Opera占剩余空間的百分比,而Firefox則沒有容量限制。
(6)支持二進制存儲。indexeddb不僅可以存儲字符串,還可以存儲二進制數據。
目前,Chrome27+、火狐21+、Opera15+和IE10+支持這個API,但Safari根本不支持它。
4。使用
a.確定瀏覽器是否支持索引數據庫
查看代碼
B.創建/打開數據庫
查看代碼
c.關閉數據庫
查看代碼
D.數據操作
在對新數據庫執行任何操作之前,事務需要啟動一個事務。在事務中,需要指定存儲事務跨度的對象。
交易有三種模式
只讀:只讀,不能修改數據庫數據,可以同時執行
讀寫:讀寫,允許你讀寫
版本更改:VerionChange
D1。添加數據
查看代碼
D2。按鍵獲取數據
查看代碼
D3。讀取集合
查看代碼
D4。更新數據
查看代碼
D5。刪除數據
查看代碼
D6。空數據
查看代碼
好文章應該引起我的注意。