Сохранять переменные JavaScript между GET-запросами? - PullRequest
2 голосов
/ 10 августа 2009

ASP .NET разрешен
Хранение значений в скрытых полях ввода разрешено
Строка запроса не допускается
POST-запрос не разрешен

Можно ли хранить переменные JS между запросами GET?
Я хочу повторно инициализировать их на клиенте, используя ClientScript.RegisterStartupScript

Могу ли я использовать куки для этого?
Есть ли другие возможности?
Где хранятся куки при выполнении запроса?

Ответы [ 4 ]

3 голосов
/ 10 августа 2009

Я бы не настоятельно рекомендовал бы это, но другой вариант - изменить свойство window.name .

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

Плюсы:

  • Быстрый-н-грязный, но работает

Минусы:

  • Перебивает все ссылки на окна для всплывающих окон / дочерних фреймов
  • Поскольку это «хак», производители браузеров могут в будущем отказаться от этой «функции»

Конечно, если вы можете исключить все старые браузеры, используйте Глобальное / клиентское хранилище сеансов !

3 голосов
/ 10 августа 2009

Могу ли я использовать для этого куки?

Да, см. Это руководство по использованию файлов cookie в Javascript .

Есть ли другие возможности?

Если вам не разрешено добавлять какие-либо URL-адреса к вашим запросам, я не могу ничего предложить.

Где хранятся файлы cookie при выполнении запроса?

В заголовке HTTP-запроса. Вышеупомянутый учебник расскажет вам, как читать их значения из Javascript. На стороне сервера с ASP.Net вы можете прочитать значения файлов cookie, используя Request.Cookie["cookieName"], который возвращает экземпляр HttpCookie.

0 голосов
/ 02 октября 2014

Если объекты, которые вы храните, большие или если вы хотите восстановить их точно (чего, конечно, нет в JSON), тогда используйте http://rhaboo.org. Большинство библиотек сериализуют большие объекты и массивы в одну запись localStorage, но это означает декодирование и перекодирование всего этого при каждом небольшом изменении, что означает постепенное ухудшение производительности для постоянных пользователей. Rhaboo использует отдельную запись LS для каждого значения терминала в объекте, а затем настраивает или добавляет их по отдельности, чтобы вы не потеряли производительность.

Кстати, я написал rhaboo.

0 голосов
/ 10 августа 2009

На данный момент использование куки - ваш лучший выбор. Вы можете сериализовать объекты JavaScript в строки и позже снова десериализовать их обратно в объекты. Хорошим форматом выбора является JSON, поскольку он является подмножеством JavaScript.

Существует также хранение объектов во Flash. Хранение в Google Gears. DomStorage

См. Эту библиотеку, которая имеет интерфейс для каждого: http://pablotron.org/?cid=1557

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

Это можно увидеть на таких сайтах, как GMail и других, где единственное, что изменяется в URL-адресе, находится за пределами #.

Вам даже не нужно менять URL-адрес, эта часть просто вставляется для URL-адресов, дружественных к человеку. (Таким образом, вы можете копировать и вставлять URL как есть).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...