2011-08-16 8 views
19

Zrobiłem z góry funkcjonalny prototyp prostej aplikacji internetowej, a opóźnienia spowodowały przejście tej funkcji w stan "na żywo".Skąd Firefox przechowuje javascript/HTML localStorage?

W tej chwili używa tylko obiektu HTML5 o nazwie localStorage, aby śledzić, co się dzieje, ale z powodu paranoi, nie chcemy, aby to było uszkodzone i utracone dane (z pewnością wydaje się nieco szkicowe, nigdy nie rozmawia z serwerem) .)

Skąd Firefox zachować to localstorage bazy danych (myślę, że to SQLite, ale nie mogę go znaleźć ...)

+0

to Q & A mogą być pomocne, choć nie o firefox specjalnie http://stackoverflow.com/questions/23587074/access-web-storage-or-indexeddb-from-out-the-browser-in-android – Stuart

+0

W przypadku aplikacji internetowej na żywo zgaduję, że masz użytkowników końcowych, a nie programistów, wprowadzających dane. Więc zamiast je znaleźć i wykonać kopię zapasową określonego pliku na swoim komputerze, dlaczego nie dodać JavaScipt do aplikacji, która okresowo synchronizuje zawartość localStorage z serwerem? – maurice

Odpowiedz

20

dane przechowywanie DOM jest przechowywany w pliku webappsstore.sqlite w profilu folder.

§ localStorage

5

W systemie Windows, można go znaleźć tutaj

 
%appdata%\Mozilla\Firefox\Profiles\xxxxxxx.default\webappsstore.sqlite 
7

W systemie Mac OS X webappsstore.sqlite znajduje się pod ~/Library/Application Support/Firefox/Profiles/xxxxxxxx.default/ (gdzie xxxxxxxx jest przypadkowa według Firefox Profile Tutorial).

Użyłem Command Line Shell For SQLite do rozejrzenia się. Zakładając www.example.com była prawdziwa strona i jedynym miejscem użyciu localStorage, można uruchomić następujące polecenia:

$ sqlite3 webappsstore.sqlite 
sqlite> .tables 
webappsstore2 
sqlite> .schema 
CREATE TABLE webappsstore2 (scope TEXT, key TEXT, value TEXT, secure INTEGER, owner TEXT); 
CREATE UNIQUE INDEX scope_key_index ON webappsstore2(scope, key); 
sqlite> select * from webappsstore2; 
moc.elpmaxe.www.:http:80|stringkey|value|0| 
moc.elpmaxe.www.:http:80|jsonkey|{"key","value"}|0| 
sqlite> .exit 

Zobacz How is HTML5 WebStorage data physically stored? do miejsca przechowywania Chrome. Chrome używa poszczególnych plików sqlite na nazwę hosta i protokół, w którym Firefox używa odwróconej nazwy hosta i protokołu w kolumnie zakresu.

Zobacz Where the sessionStorage and localStorage stored? dla lokalizacji przechowywania Opera. Opera używa pliku indeksu XML i pojedynczych plików XML dla zakodowanych danych Base64.