2011-11-09 12 views
12

Witryna jest używana na tabletach Samsung Galaxy Tab z systemem Gingerbread. Dotychczas używane przeglądarki to przeglądarka plików oraz Dolphin HD. Pozycje w lokalnej pamięci wydają się przypadkowo znikać, gdy użytkownicy wchodzą i wychodzą z zasięgu sieci. Wydaje się również, że pamięć masowa nie jest w stanie w pełni przetrwać awarii przeglądarki lub ponownych uruchomień urządzeń. Dziwna część to pamięć masowa zwykle nie jest całkowicie usuwana, brakuje tylko dużej liczby elementów. Czy ktoś jeszcze słyszał o tym problemie lub miał jakieś sugestie?Lokalna pamięć masowa HTML5 nietrwała

Edit: Poprzez lokalne przechowywanie Znaczy,

localStorage["Key"] = value; 

Retrived używając:

localStorage.getItem("Key"); 

W każdym przypadku, bezpośrednio po dodaniu do pamięci lokalnej, witryna jest w stanie pobierać i wykorzystywać dane . Jednak po pewnym czasie po wyłĘ ... czeniu roamingu lub wyłĘ ... czeniu przeglĘ ... darki/tabletu dane już nie sĘ ... obecne. Wszystko, co znalazłem, mówi, że pamięć lokalna powinna się utrzymywać, więc nie wiem, dokąd się udać.

+2

Wskazówka: Pokaż odpowiedni kod, aby inni mogli go zweryfikować. –

+0

Najnowsze generacje przeglądarek mobilnych mają tendencję do czyszczenia lokalnego magazynu przy jednoczesnym czyszczeniu plików cookie. Czy to możliwe, co się dzieje? –

+1

To tylko ogólne pytanie. Elementy dodane przez localStorage ["Key"] = wartości, które są tam przez cały czas korzystania z witryny, nie pojawiają się nagle w przypadkowych czasach. Zwykle po roamingu lub po awarii przeglądarki. Replikację udało mi się tylko raz, ale kilku użytkowników dziennie napotyka na nią i powoduje duży problem, gdy się to zdarza. Zastanawiasz się, czy jest to znany problem i czy inne metody przechowywania offline HTML5 są bardziej niezawodne? – jmease

Odpowiedz

3

Co powiesz na dalsze debugowanie? Może twój własny kod jest jakoś nadpisany? Używam localStorage/sessionStorage w PhoneGap i nigdy ich nie znikają ...

Dodaj następującą procedurę obsługi zdarzenia:

window.addEventListener("storage", function(e) { 
    console.debug(e); 
}, false); 

Które przeciwpożarowej (i logowania do konsoli, na przeglądarce na komputerze) za każdym razem Dostęp do pamięci. Możesz również rejestrować bardziej szczegółowe informacje, które będą widoczne w twoim logb adb (tak, jak klucz jest dostępny!).

Więcej informacji na temat zdarzeń związanych z pamięcią można znaleźć pod numerem this stackoverflow question.

+0

Dzięki Leon. To moja wina, że ​​nie aktualizuję wpisu. Próbowałem już dodać detektor zdarzeń. Użytkownicy korzystają z witryny tylko na urządzeniach mobilnych, więc nie ma na niej konsoli do zapisu. A ponieważ słuchacz nie uruchamia żadnych zdarzeń z tej strony, nie jest to przydatne. Wymyśliłem sposób, by skłonić słuchacza do wystrzelenia całej witryny, ale zawierał on wyskakujące okienka i jest czymś więcej, niż chcę wprowadzić moich użytkowników. – jmease

+0

jest kilka fajnych narzędzi do logowania jscript - takich jak [log4javascript] (http://log4javascript.org/index.html), które pozwalają ci również logować się do serwera (np. [AjaxAppender] (http://log4javascript.org/docs /manual.html#ajaxappender)), które mogą być pomocne w debugowaniu problemów mobilnych takich jak te ... Mam nadzieję, że to pomaga – Leon

Powiązane problemy