2012-03-12 83 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文件。