From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- files/zh-tw/web/api/indexeddb_api/index.html | 148 +++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 files/zh-tw/web/api/indexeddb_api/index.html (limited to 'files/zh-tw/web/api/indexeddb_api/index.html') diff --git a/files/zh-tw/web/api/indexeddb_api/index.html b/files/zh-tw/web/api/indexeddb_api/index.html new file mode 100644 index 0000000000..91f2fc812d --- /dev/null +++ b/files/zh-tw/web/api/indexeddb_api/index.html @@ -0,0 +1,148 @@ +--- +title: IndexedDB +slug: Web/API/IndexedDB_API +tags: + - Database + - IndexedDB + - bug-840092 +translation_of: Web/API/IndexedDB_API +--- +
{{SeeCompatTable}}
+ +

IndexedDB 為用戶端的儲存用 API,可用於大量的結構化資料,並透過索引功能而高效率搜尋資料。DOM Storage 適合儲存較少量的資料;IndexedDB 則適合大量結構化資料的儲存方案。

+ +

本篇文章僅為 API 物件的入門技術說明。若需進一步了解,則請參閱 IndexedDB 基本概念。更多細節則可參閱使用 IndexedDB

+ +

IndexedDB 提供不同 APIs 用於同步與非同步的存取作業。同步 API 僅能用於Web Workers 之中,但尚未有瀏覽器支援同步API。非同步 API 則用於 Web Workers 內外均可,但 Firefox 目前尚未建構。

+ +

非同步 API

+ +

非同步API不會阻塞呼叫它的執行緒。若要非同步存取資料庫,可於 window 物件的 indexedDB 屬性上呼叫 open()。此函式將回傳 IDBRequest 物件 (IDBOpenDBRequest),開始非同步存取資料庫;呼叫端程式利用IDBRequest物件上的事件來進行非同步溝通。

+ +
+

注意:在舊版瀏覽器 (Gecko 16 版之前的 indexedDB 屬性;Chrome 中的 webkitIndexedDB;IE 10 中的 msIndexedDB) 中的 indexedDB 物件,均具備前綴屬性。

+
+ + + +

以下API在早期規範中有定義,但現已移除。這邊列出僅供參考:

+ + + +

除了非同步API,也有應用在WebWorkers內的同步API,但請注意目前還沒有瀏覽器支援同步API。這裡也提供 API 的同步版本

+ +

儲存限制

+ +

單一資料庫項目的容量/大小並沒有任何限制,但是各個 IndexedDB資料庫的容量就有限制。此限制,還有使用者介面的斷言 (Assert) 方式,又將因瀏覽器而有所不同:

+ + + +

範例

+ +

Web 上的 IndexedDB 使用範例,是由 Marco Castelluccio 所提供。Marco 是 IndexedDB Mozilla DevDerby 的優勝者,而該得獎 Demo 為 eLibri,屬於函式庫與 eBook 閱讀器的 App。

+ +

瀏覽器相容性

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Asynchronous API +

24.0
+ 11.0 {{property_prefix("webkit")}}

+
+

{{CompatGeckoDesktop("16.0")}}
+ {{CompatGeckoDesktop("2.0")}} {{property_prefix("moz")}}

+
10 {{property_prefix("ms")}}{{CompatNo}}{{CompatNo}}
Synchronous API
+ (used with WebWorkers)
{{CompatNo}}{{CompatNo}}
+ See {{bug(701634)}}
{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Asynchronous API{{CompatNo}}{{CompatGeckoDesktop("6.0")}} {{property_prefix("moz")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

瀏覽器相容性表格則請參閱:When Can I Use IndexedDB

+ +

另可透過 IndexedDB Polyfill,在支援 WebSQL 的瀏覽器上使用 IndexedDB。

+ +

另可參閱

+ + -- cgit v1.2.3-54-g00ecf