2011-08-02 17 views
9

Po pierwsze chciałbym wspomnieć, że jestem stażystką z niewielkim doświadczeniem w świecie techniki, więc przykro mi, jeśli odpowiedź na moje pytanie wydaje się oczywista. Próbowałem znaleźć odpowiedź już od kilku dni i nie mam na nią zbyt wiele.Pamięć podręczna obiektu JSON z HTML5

Mój projekt polegał na opracowaniu katalogu telefonicznego. Co teraz próbuję zrobić, to często wyszukiwane pole, które pokazuje dziesięć najczęściej wyszukiwanych nazw, od kiedy użytkownik zaczął korzystać z aplikacji. Jestem struganie, aby obiekt JSON o następującej informacji, a następnie po stronie klienta cache Rezultat:

var myJSONObject = {"searched": [  {"firstname":firstName,"lastname":lastName,"PK":pk,"phone":phonenumber,"email":emailaddress,"bu":businessunit,"company":company,"building":building, "fax":fax, "timesvisited":"accumulator to keep track of visits to the name"} 

] };

Ból mojej głowy teraz zastanawia się, jak cacheować obiekt JSON. Stworzyłem plik manifestu i wiem, jak buforować określone pliki, takie jak plik css, ale w jaki sposób buforujesz coś takiego jak kod wymieniony powyżej, tak aby dane były przechowywane i można je wyświetlać do momentu wyświetlenia strony podczas drugiej wizyty ?

+0

Nie ma czegoś takiego jak ... ah, zapomnij ':)' –

+0

haha .. jak powiedziałem, jestem BARDZO nowy w tym ... ale twoje prawo. Prawdopodobnie jest to dobra rzecz, aby odpuścić;). –

Odpowiedz

10

Można użyć lokalnej pamięci masowej, która jest obsługiwana w przeglądarkach Firefox 3.5, IE 8 i Chrome 4 i nowszych. Aby zapisać się do lokalnej pamięci podręcznej pamięci:

localStorage['jsoncache'] = JSON.stringify(myJSONObject); 

aby odzyskać go:

myJSONObject = JSON.parse(localStorage['jsoncache']); 

Wskazówki, jak można przechowywać tylko struny, nie każdy rodzaj obiektu, w lokalnej pamięci masowej. Możesz zmienić klucz jsoncache na coś innego, jeśli chcesz.

+0

Dziękuję bardzo! :RE. –

+1

Czy jsoncache będzie w tym przypadku plikiem .txt w tym samym katalogu? –

+0

Nie ma problemu! –

4

Nie jestem w pełni sposobem tworzenia, utrzymywania i pobierania obiektu, ale jeśli załadujesz go za pośrednictwem Ajax, możesz użyć buforowania HTTP.

Jeśli chcesz przechowywać je tylko lokalnie, można korzystać localStorage (tylko nowsze przeglądarek obsługuje tego):

// Serialize and store 
localeStorage['topten'] = JSON.stringify(myJSONObject) 

// Retrieve and deserialize 
var myJSONObject = JSON.parse(localeStorage['topten']) 
+1

Dziękuję :). Twoja odpowiedź i powyższe wyjaśnienia bardzo mi pomogły. –

Powiązane problemy