2009-09-02 18 views
10

Czy możliwe jest zachowanie zmiennych (globalnych) po ponownym załadowaniu strony? Jeśli tak, w jaki sposób?Zapobieganie utracie zmiennych po naciśnięciu przycisku przeładowania przeglądarki

Dzięki za pomoc. Pozdrawiamy.

+1

Przepraszam, jeśli jestem gęsty, ale twoja terminologia wydaje się być niestandardowa. Czego można uniknąć "globalnej zmiennej tablicowej"? Co to jest przycisk resetowania przeglądarki? –

+0

Czy masz jakiś kod ilustrujący, o co ci chodzi? –

+0

Przepraszam ... masz rację, mam na myśli "zapobiec inicjalizacji wartości lub zresetować". Innymi słowy; Chcę chronić moją globalną wartość i używać jej w następnych operacjach. Dzięki. Pozdrawiamy. –

Odpowiedz

2

Środowisko JavaScript zostanie zresetowane, gdy przeglądarka opuści stronę. Możesz jednak zarejestrować procedurę obsługi onUnload, aby przekształcić tablicę w plik cookie, a następnie sprawdź to za każdym razem, gdy strona zostanie załadowana i odseryj ją, jeśli jest obecna.

+0

Cześć Adam, Co się dzieje, gdy przycisk resetowania przeglądarki jest naciśnięty? –

+0

Próbuję rozwiązać ten problem bez używania cookie. –

1

Czy Twoja przeglądarka ma przycisk resetowania, czy też masz na myśli przycisk ponownego ładowania?

Po załadowaniu strony wszystko jest ładowane świeżo. Nic nie pozostało z żadnej poprzedniej strony. Jedynym miejscem do przechowywania wszystkiego, co przetrwa ładowanie strony, jest plik cookie.

Należy pamiętać, że ilość danych, które można umieścić w plikach cookie, jest ograniczona do kilku kilobajtów na witrynę. Dokładny limit różni się w zależności od przeglądarki, ale nie można oczekiwać, że w plikach cookie można umieścić więcej niż kilobajt lub dwie wartości danych.

+0

Przycisk przeładowania tak ... Dziękuję za dużo Guffa ... Pozdrawiam. –

4

Można przechowanie danych pomiędzy przeładowywanie stron poprzez coś jak window.localStorage, window.sessionStorage (zastrzeżony rozszerzenia Mozilla) lub abstrakcji bazy danych (window.openDatabase) Zapewnione przez niektóre z WebKit -na przeglądarek. Zobacz this article on MDC, aby uzyskać ładny przegląd interfejsów pamięci masowej i this WebKit article na temat ich wprowadzenia do bazy danych.

+0

Dzięki za dużo Kangaxa ... to bardzo interesujące. Które przeglądarki są oparte na Webkit? –

+0

ABrowse, przeglądarka internetowa dla systemu Android, Arora, Google Chrome, Epiphany, iCab, Iris Browser, Midori, OmniWeb, rekonq, Safari, Shiira, Skipstone, Sputnik dla MorphOS, SRWare Iron, Stainless, Sunrise, TeaShark, przeglądarka internetowa dla S60, WebOS:) (Patrz http://pl.wikipedia.org/wiki/List_of_web_browsers#WebKit-based_browsers) – kangax

0

Czy mówisz o plikach cookie? Jeśli tak, być może zechcesz przejrzeć this open-source module

Pozwoli to łatwo przechowywać pliki cookie, czyli dane, nawet po ponownym wczytaniu przeglądarki. To sprawia, że ​​jest to naprawdę łatwe i właśnie tego używam.

var cookie = new HTTP.Cookies(); 
cookie.write('mydata', 'myvalue', '+1y'); 

//later on you can get that data EVEN AFTER a reload 
var x = cookie.read('mydata'); 

Prawdopodobnie nie powinien starać się realizację ciasteczka od zera, choć ponieważ jest bardzo bolesne i trzeba zrobić wiele badań w całej przeglądarek internetowych, takich jak upewnienia Internet Explorer działa.

3

W tym samym stylu można przechowywać wartości ciągów w klawiszu krzyżyka.

Używanie właściwość:

window.location.hash = 'flight/105';

następnie, gdy odświeżyć stronę zainicjować powrotem swoje zmienne.

8

Spróbuj tego cookie-less javascript function.

Zasadniczo przechowuje dane w usłudze window.name, która nie powoduje wyczyszczenia wartości po przeładowaniu strony lub przejściu do innej witryny.

+0

działało idealnie, tyvm –

Powiązane problemy