IndexedDB 資料庫概述

admin發表於2019-04-22

本文將對IndexedDB資料庫做概括性介紹,不會分析其具體用法。

如果是後臺程式設計師,那麼對資料庫操作必定非常熟練,因為這是必備技能。

常見的資料庫有SQL Server、MySQL或者Oracle等,很難想象瀏覽器端也具有資料庫。

IndexedDB資料庫是HTML5新增,具有強大的資料儲存與查詢能力,下面進行一下概述性介紹。

一.IndexedDB資料庫出現的原因:

既然瀏覽器端儲存資料的方式有cookie或者localStorage,那麼為什麼還要設計IndexedDB資料庫。

隨著軟硬體的進步,資料交換量也越來越大,為了提高使用者體驗,可能需要將越來越多的資料儲存於客戶端。

比如暫時將一些更新不頻繁的資料儲存於客戶端,當使用者開啟網頁後,首先載入客戶端資料,以此提高響應速度。

但cookie與LocalStorage難以勝任上述任務,主要原因如下:

(1).cookie資料儲存量實在太小了,僅有幾KB,並且每次請求都會隨同傳送到伺服器也浪費頻寬。

(2).LocalStorage儲存量和cookie相比雖然有很大的增加,但最多也不過幾十兆而已,不同瀏覽器有所不同。

所以一種大資料本地儲存方式產生勢在必行,IndexedDB資料庫的特點很好滿足的上述需求。

二.IndexedDB資料特點:

此資料庫具與其他瀏覽器端資料儲存方式相比具有諸多的優點,下面對其特點進行一下總結:

(1).儲存資料量非常大,在理論上基本上不封頂,cookie與localStorage無法匹敵。

(2).是文件型資料庫,與Mongodb等類似,與常見的關係型資料庫不同,不支援SQL語句查詢。

(3).支援transaction事務,對保證資料安全具有重要意義,與傳統資料庫中的事務目的一致。

(4).遵循同源策略,所以網頁只能訪問所在域的IndexedDB資料庫。

(5).多數API採用非同步操作,以防止資料操作量大時,阻塞其他操作的進行。

(6).不是以表的形式儲存資料,而是通過物件倉庫儲存。

(7).資料庫除了儲存字串外,還可以儲存Date, Object, Arra, File, Blob, ImageData或二進位制等資料型別。

(8).能夠為資料建立索引,以此提高查詢資料的各方面效能。

特別說明:雖然此資料庫優點眾多,不能由此認為cookie或者localStorage已經過時,只是用武之地不同罷了。

上面對IndexedDB資料庫進行了概括性介紹,如果想要知曉其具體用法可以參閱本版塊其他相關文章。

三.Web SQL資料庫:

可能當前瀏覽器還支援Web SQL資料庫,但是並不推薦學習,因為它已經被廢棄。

下面是一個在谷歌開發者工具本地儲存介面的截圖:

a:3:{s:3:\"pic\";s:43:\"portal/201904/22/235353ho0puwpdhzm8smsd.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

此資料庫是關係型資料庫,學習成本與IndexedDB資料庫相比要大很多。

取代原因可以參閱indexedDB替代Web SQL Database一章節。

相關文章