[Javascript]Кнопка Refresh

tipnote

Есть замечательный скрипт, у которого есть обязательный параметр (ну например, местоположение в документе). Этот параметр ему необходимо передать с прошлой загрузки страницы. Есть ли способ передать ему этот параметр после нажатия кнопки Refresh (НЕ Ctrl-F5) кроме как через URL или History?
Естественно, подразумевается, что происходит загрузка страницы из кэша. Поэтому варианты сохранения через сервер и проч., требующие обращения на сервер не приветствуются.
Интересует лиса и 6ой осел.
P.s. Кстати, если кто-нибудь кинет ссылку на подробное описание алгоритма работы вышеозначенных браузеров после нажатия этой кнопки - буду очень признателен. А то у меня в основном догадки на основе опытов

ifani

кукисы?

pitrik2

+1
только кукисы тут помогут
кнопка рефреш работает в зависимости от кэшовых параметров, которые передаются в хедере страницы
ctrl+f5 вроде игнорирует эти параметры и всегда рефрешит

tipnote

Ага, всем спасибо.
На самом деле, кукисы имхо не лучше хистори - тоже вроде как не по назначению "загаживаем". А в случае встраиваемых элементов страницы и тот и другой вариант грозит потенциальными (понятно, можно свести к минимуму, но хотелось "красивое" решение ) проблемами с пересечениями пространств имен элемента и произвольного основного сайта. В общем, хз, надо выбрать. Спасибо за подтверждение опасений

redzor

интересно, зачем такое вообще может понадобиться

durka82

Вроде бы еще можно заныкать скрытый фрэйм и не перезагружать его.
Только вот не уверен, можно ли так обрабатывать Ф5.
Еще вариант - встроить флэшку и хранить инфу в локальном хранилище флэша.
Но тогда наверное проще вообще все на флэше сделать.

tipnote

интересно, зачем такое вообще может понадобиться
Есть ajax-приложение и на "шаге" #reservationList есть таблица. При нажатии на рефреш совершенно не хочется перегружать (в смысле загружать с сервера) весь документ. Хочется, чтобы браузер взял все из кэша, а специально на случай рефреша назначенный колбэк обновил только таблицу.
Так вот я ловлю рефреш через передачу названия предыдущего шага.

durka82

А если странице задать правильные параметры кэширования - мб она и так будет браться из кэша?

tipnote

А если странице задать правильные параметры кэширования - мб она и так будет браться из кэша?
Ну да.
Вопрос-то не в этом, а в том, когда вызывать функцию обновления таблицы. Я же не хочу "задизейблить" кнопку рефреш, Я хочу, чтобы она обновляла определенные куски документа.

durka82

А если собирать страницу из частей на клиенте(инклюдом) и разным частям давать разные параметры кэшировани? Или так нельзя?

tipnote

А если собирать страницу из частей на клиенте(инклюдом) и разным частям давать разные параметры кэшировани? Или так нельзя?
Имхо, только через фреймы. А это совсем не то, что нужно.

durka82

Можно передавать параметры через форму (соотв через сервер но для этого сделать простой сервер, который только отражает данные.

tipnote

Не, лишний - пусть даже и легковесный - запрос делать не хочется.
Ладно, сделал-таки через dhtmHistory.js , раз уж все равно его использую.

redzor

сделал так сделал. Все же, было бы нормально сделать через аjax запрос по нажатию кнопки рефреш, который на onComplete: вызывал яваскриптовую функцию, которая бы обновляла таблицу.
ЗЫ: я наверное тебя как-то не так понял

tipnote

Все же, было бы нормально сделать через аjax запрос по нажатию кнопки рефреш, который на onComplete
Скорее я не понимаю
Проблема как раз в том, чтобы выбрать из всех случаев загрузки страницы один - нажатие по рефреш с загрузкой из кэша. То есть первое обращение, бэк/форвард или Ctrl-F5 исключить. Поэтому я и сохраняю предыдущий шаг:

if (historyStorage.getLastSavedAction == newLocation) {
debug('Refresh!');
callbacks.onRefresh.call(null,newLocation);
}
else
historyStorage.setLastSavedAction(newLocation);

redzor

сорри, я думал, у тебя на форме кнопка "рефреш". тупанул
Оставить комментарий
Имя или ник:
Комментарий: