Предотвращение потери переменных при нажатии кнопки перезагрузки браузера

Возможно ли сохранить мои (глобальные) переменные при перезагрузке страницы? Если да, то как?

Спасибо за любую помощь. С наилучшими пожеланиями.

Ответ 1

Попробуйте эту функцию javascript без файлов cookie.

Он в основном сохраняет ваши данные в свойстве window.name, который не очищает значение при перезагрузке страницы или переходит на другой сайт.

Ответ 2

Вы можете сохранять данные через перезагрузку страниц через нечто вроде window.localStorage, window.sessionStorage (проприетарное расширение Mozilla) или абстракцию базы данных (window.openDatabase), предоставляемую некоторыми браузерами на основе WebKit. См. эту статью о MDC для приятного обзора интерфейсов хранения и this WebKit статьи о введении их базы данных.

Ответ 3

В том же стиле вы можете хранить строковые значения в хэш-ключе.

Используя свойство:

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

Затем при обновлении страницы вы инициализируете свои переменные.

Ответ 4

Среда JavaScript будет reset, когда браузер покинет вашу страницу. Тем не менее, вы можете зарегистрировать обработчик onUnload для сериализации вашего массива в файл cookie, а затем проверить его каждый раз, когда страница будет загружена, и неэтериализовать ее, если она есть.

Ответ 5

В вашем браузере есть кнопка reset, или вы имеете в виду кнопку перезагрузки?

Когда страница загружается, все загружается свежей. С любой предыдущей страницы ничего не осталось. Единственное место для хранения всего, что сохранилось при загрузке страницы, находится в файле cookie.

Обратите внимание, что количество данных, которое вы можете поместить в файлы cookie, ограничено несколькими килобайтами на сайт. Точный предел варьируется от браузера к браузеру, но вы не можете ожидать, что сможете добавить более чем килобайт или две ценности данных в файлы cookie.

Ответ 6

Вы говорите о Cookies? Если это так, вы можете просмотреть этот модуль с открытым исходным кодом

Это позволит вам хранить файлы cookie, то есть данные, даже после перезагрузки браузера. Это делает его очень легким, и это то, что я использую.

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');

Вы, вероятно, не должны пытаться делать куки-версию с нуля, но потому, что это очень больно, и вам нужно много тестировать в веб-браузерах, например, чтобы Internet Explorer работал.