Можно ли создать переменную, которая не меняется при обновлении страницы, в JavaScript? - PullRequest
2 голосов
/ 28 августа 2011

После того, как я спросил это question:

Я думал об этом решении:

  • Создайте логический флаг внутри JavaScript скрипт и сделать его true :
    • true указывает на обновление страницы с помощью браузера.
    • false указывает на обновление страницы с помощью кнопки.
  • Внутри onclick атрибут кнопки, я установил flag до false и вызовите window.location.reload() для обновления страницы.
  • Внутри onload атрибут <body> тега, я проверяю флаг если это правда, переключитесь на вкладку Home, в противном случае перейдите на вкладку Page1, где она содержит тег <div>. Я хочу обновить его содержимое.После этого установите flag в true . *

Но, к сожалению, это не работает и flag всегда true когда дело доходит до атрибута onload тега <body>.Можно ли (как-то) создать переменную, которая не изменяется при обновлении страницы, в javascript?

* Моя страница состоит из множества вкладок, первая из которых - Home (где она должна быть)отображается при обновлении страницы с помощью браузера), а второй - Page1 (где он содержит тег <div>. Я хочу обновить его содержимое и где он должен отображаться при обновлении страницы с помощью кнопки)

Ответы [ 4 ]

3 голосов
/ 29 августа 2011

Браузер не имеет состояния, что означает, что все на странице обновляется при каждой загрузке страницы.

Существует несколько способов хранения постоянной информации, к которой вы можете обращаться между запросами:

  • Сохраните нужные данные в файле cookie и прочитайте их при загрузке страницы
  • Передайте данные на URL и прочитайте текущий URL (включая данные, которые вы передали) при загрузке страницы.Например: перенаправить браузер на http://something.com/yourpage.html#flag=true, если пользователь обновился через браузер, или перенаправить на http://something.com/yourpage.html#flag=false, если пользователь нажал кнопку.При загрузке страницы просто прочитайте текущий URL и посмотрите, что это за флаг.
  • Используйте cookie для создания сеанса и сохранения данных на сервере (технически это очень похоже на первый вариант, за исключением того, что вы простосохранить токен на клиенте и передать его на сервер для извлечения данных, которые там хранились)
3 голосов
/ 28 августа 2011

Нет.Однако вы можете сохранить значение переменной несколькими способами.

  • cookie
  • в url (строка запроса)
  • скрытый элемент на странице, установленной изпеременная сеанса.
2 голосов
/ 28 августа 2011

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

1 голос
/ 28 августа 2011

Вы можете сохранить данные, используя куки, window.name и window.location.hash key

...