新聞中心
IndexedDB 是一種W3C 工作草案,令 JavaScript 開發(fā)人員可以存儲、搜索并檢索用戶本地客戶端上的數(shù)據(jù),即便未啟用 Internet 連接的情況下也可以。本博文介紹 IDBExplorer,我們在內部利用該工具調試 IndexedDB 應用程序。利用 IDBExplorer,您可以查看數(shù)據(jù)庫架構、對象存儲內容和索引詳細信息。

目前成都創(chuàng)新互聯(lián)公司已為千余家的企業(yè)提供了網站建設、域名、虛擬主機、綿陽服務器托管、企業(yè)網站設計、昌黎網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
通過一個 IndexedDB 應用程序示例了解該工具
為了更好地演示說明,我使用 IndexedDB 創(chuàng)建了一個應用程序,用于跟蹤我的新年計劃。它在本地存儲并訪問我的計劃(在系統(tǒng)上瀏覽網頁),并允許我添加或編輯計劃。[Done That](完成)按鈕會將選定的計劃從列表中移除,并從數(shù)據(jù)庫中移除其內部表現(xiàn)形式。
IndexedDB 將某個數(shù)據(jù)庫定義為信息的容器。每個數(shù)據(jù)庫均包含對象存儲,用作 JavaScript 對象的存儲庫。每個對象均包含可以利用 API 進行查詢的特性。如果您對關系數(shù)據(jù)庫熟悉,對象存儲可以等同于表,對象存儲中的每個 JavaScript 對象表示一個記錄。不過,IndexedDB 對象存儲中存儲的對象都被視為不透明實體。另外,這些對象都無需包含相同的屬性。
如果JavaScript 對象與關系數(shù)據(jù)庫記錄相似,則該對象的屬性可以被認為是表中的列(或字段)。結果,IndexedDB 允許您定義標識對象屬性的索引,用于在對象存儲中搜索記錄。因此,索引允許您使用 JavaScript 對象的特性值遍歷并搜索 IndexedDB 數(shù)據(jù)。
IndexedDB 允許每個域具有多個數(shù)據(jù)庫。此示例使用一個數(shù)據(jù)庫:“NewYear”。該應用程序在 NewYear 數(shù)據(jù)庫中名為“Resolutions”的對象存儲中存儲我的計劃。每個計劃都是具有以下特性的 JavaScript 對象:
◆ priorityId:將計劃分成不同的優(yōu)先級
◆ name:計劃的名稱
◆ occurrenceId:跟蹤計劃的活動的執(zhí)行頻率
◆ dueDate:計劃的完成日期
◆ createdDate:計劃添加到對象存儲的內部日期
◆ categoryId:定義計劃的活動類型
請注意,并不是所有特性在應用程序的 UI 中都是可見的。在某些情況下,他們僅供內部使用(如 createdDate)。
下面是 IDBExplorer 工具顯示“Resolutions”對象存儲的內容的方式:
“Resolutions”對象存儲還包含名為“priorityId”的 priorityId 特性的索引,利用該索引應用程序可以使用priorityId 屬性查詢對象。每個 priorityId 值的描述位于“Priorities”對象存儲內,occurrenceId 值的描述位于“Occurrences”對象存儲內。類似地,categoryId 值的描述位于“Categories”對象存儲內。
該工具使用一個樹層次結構來說明上述關系:
IDBExplorer 工具顯示數(shù)據(jù)庫中有五個計劃(兩個高優(yōu)先級任務,兩個中優(yōu)先級任務和一個低優(yōu)先級任務)。
利用該應用程序,我可以添加一個新計劃:
該應用程序利用光標從 Occurrence、Priority 和 Category 字段的各自對象存儲中檢索這些字段的值,并將這些值顯示給用戶。IDBExplorer 工具允許您查看這些值在對象存儲中存在的方式。例如,選擇 Categories 對象存儲會顯示可用的類別及其描述:
您可以在“WorkOn”屏幕中選擇某個計劃,并選擇 [Edit](編輯),對該計劃進行更新。進行任意更改后,選擇 [Update](更新)按鈕將提交這些更改,并在“Resolutions”對象存儲中更新這些值。
在您的應用程序中使用 IDBExplorer
您可以在您的 Metro 風格應用程序或網站中包括 IDBExplorer 工具。不過,我們建議您不要在您的應用程序中部署該工具。
要將該工具添加到您的網站,請將 IDBExplorer 軟件包的內容復制并解壓到您的網站。您的應用程序需要利用 iframe 元素或一個新窗口鏈接到 IDBExplorer 文件夾內包含的 IDBExplorer.html 文件。
在我們的示例中,我們決定在 iframe 元素內承載 IDBExplorer。.不過,對于常規(guī)開發(fā),我們建議在一個新窗口內承載此 URI。當您調試數(shù)據(jù)庫和應用程序時,不會影響您網站的用戶界面,實現(xiàn)了并行的用戶體驗。
當承載 IDBExplorer 時,您需要使用查詢字符串傳遞數(shù)據(jù)庫名稱。在此示例中,是通過利用 iframe 元素的 src 特性來實現(xiàn)的:
當計劃在 Metro 風格應用程序中承載此功能時,請切記 Metro 風格程序是全屏幕運行的。因此,您應該導航到此 URL,而不是打開一個新窗口(您將需要向 IDBExplorer.html 文件中添加一個 [Back](返回)按鈕,以便能夠返回您的應用程序)。另外,您可以添加一個 iframe 元素并在該元素中顯示該工具。
原文:http://blogs.msdn.com/b/ie_cn/archive/2012/02/01/indexeddb.aspx
【編輯推薦】
- NoSQL生態(tài)系統(tǒng)
- 淺析Oracle NoSQL Database
- 為什么說很多NoSQL的Benchmark是扯淡?
- 解讀NoSQL數(shù)據(jù)庫的四大家族
- 為什么說很多NoSQL的Benchmark是扯淡?
當前文章:調試IndexedDB應用程序
文章源于:http://m.fisionsoft.com.cn/article/dhigjid.html


咨詢
建站咨詢
