2012-03-12 71 views
14

在使用HTML5 WebStorage功能時,我知道某些瀏覽器(如Chrome)具有開發人員工具,使用戶可以瀏覽WebStorage的內容以進行調試和解決問題。HTML5 WebStorage數據如何物理存儲?

我想知道是否可以在文件系統中查看Web存儲的內容。此內容是否存儲在位於某個標準位置的文件系統上的文本文件中?或者,這些數據是由各種瀏覽器以某種專有二進制格式存儲的,並且不是通過瀏覽文件系統來訪問或查看的?

我問這個問題的動機是看你是否可以在文件系統上查看WebStorage的內容,作爲開發和調試的輔助工具,而且出於好奇也看看這些數據是如何存儲的。

謝謝。

+0

取決於瀏覽器。 – Quentin 2012-03-12 14:43:46

+0

您可能會發現http://www.w3schools.com/html5/html5_webstorage.asp有幫助。 – Hope4You 2012-03-12 14:55:35

+3

@ Hope4You - 由於(a)它是w3schools(因此很糟糕)和(b)完全關注瀏覽器提供的API而不是它們的內部接口 – Quentin 2012-03-12 15:29:21

回答

10

Chrome使用SQLite for LocalStorage。

我確認了這一點,在本地PC上登錄AppData\Local\Google\Chrome\User Data\Default\Local Storage並查看文件的內容。當通過文本編輯器查看時,這些文件以「SQLite格式3」開頭。您將需要一個SQLite數據庫查看器來查看數據。

+0

感謝女修道院,這是很棒的信息!你對Firefox或IE有什麼想法嗎? – 2012-03-14 19:30:53

+0

FireFox也使用SQLite數據庫以及HTML5 WebStorage。我建議使用[FireFox的SQLite管理器插件](https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/)查看本地文件系統上的SQLite數據庫。 – 2012-03-15 04:25:04

7

在Mac OS X,這是在~/Library/Application Support/Google/Chrome/Default/Local Storage

我用Command Line Shell For SQLite環顧四周。假設www.example.com是一個真正的網站,你可以運行這些命令:

$ sqlite3 http_www.example.com_0.localstorage 
sqlite> .tables 
ItemTable 
sqlite> .schema 
CREATE TABLE ItemTable (key TEXT UNIQUE ON CONFLICT REPLACE, value BLOB NOT NULL ON CONFLICT FAIL); 
sqlite> select * from ItemTable; 
stringkey|value 
jsonkey|{"key","value"} 
sqlite> .exit 

用於Firefox的存儲位置見Where does firefox store javascript/HTML localStorage?。 Chrome針對每個主機名和協議使用單獨的sqlite文件,其中Firefox使用單個webappsstore.sqlite文件,並在範圍列中使用相反的主機名和協議。

有關Opera存儲位置的信息,請參閱Where the sessionStorage and localStorage stored?。 Opera爲Base64編碼數據使用XML索引文件和單個XML文件。

3

只是想爲IE 11 貢獻的localStorage的保存在C:\用戶[用戶帳戶] \應用程序數據\ LocalLow \微軟\的Internet Explorer \ DOMStore

然而,它默認爲隱藏。要顯示此文件夾,您必須: 文件夾選項 - >取消選中「隱藏受保護的操作系統文件」 回到文件夾,您會看到裏面的一些子文件夾。根據網站轉到每個文件夾將會看到一些XML文件。