Обновление страницы
Такая проблема. Страница генерится динамически. Если после перехода на другую страницу нажать "Назад" в эксплорере, он задает вопрос о том, нужно ли снова посылать данные на сервер. Какой заголовок HTTP нужно передать експлореру, чтобы он не запрашивал страницу снова, а показывал старую?
Всем привет!
Такая проблема. Страница генерится динамически. Если после перехода на другую страницу нажать "Назад" в эксплорере, он задает вопрос о том, нужно ли снова посылать данные на сервер. Какой заголовок HTTP нужно передать експлореру, чтобы он не запрашивал страницу снова, а показывал старую?
Передавать форму которую засабмитили на предыдущей странице методом GET а не POST.
Я ведь правильно понимаю, что страница на которую ты собираешься вернутся это что то вроде результата поиска или ещё какого-иного сабмита формы?
Передавать форму которую засабмитили на предыдущей странице методом GET а не POST.
Я ведь правильно понимаю, что страница на которую ты собираешься вернутся это что то вроде результата поиска или ещё какого-иного сабмита формы?
Да, понимаешь правильно.
Только я стараюсь использовать метод POST повсеместно. Наверное, это не правильно, но мне кажется, что так симпатичнее %) - другого аргумента я не могу найти.
Спасибо
P.S. ДОЛОЙ HISTORY.BACK!!!!
Ну, просто мысли вслух.. Post и мне тоже нравится больше, чем get..) Ничего страшного, на мой взгляд, в том, что брузла просит отослать данные заново при переходе назад, нет. Да и тем более реализованная в браузерах history.back это сущая бяка, и лучше на нее никогда не пологацца.. Лучше в скриптах реализовать эту самую кнопку назад, с высыланием старой инфы)
P.S. ДОЛОЙ HISTORY.BACK!!!!
На самом деле кнопка назад реализована и находится на странице, но, к сожалению, глупые пользователи предпочитают использовать "бяку" и не хотят учиться :x и постоянно жалуются X)-
На самом деле кнопка назад реализована и находится на странице, но, к сожалению, глупые пользователи предпочитают использовать "бяку" и не хотят учиться :x и постоянно жалуются X)-
Интересно, а на JS её никак не перехватить?
А то можно было бы вызывать функцию и сабмитить постом. Хотя, повторяю, имхо лучше всё таки использовать GET в комплекте с urlencode/urldecode (для PHP).
Тем более, это не так часто нужно.
А насчет отключения через js history.back, то этого нету.. Вернее возможно есть, но то что это есть не во всех (включая популярные) браузерах эт точно.. Но можно подменять историю, то есть при нажатии бэк будет открывацца другая страница.. Ну и всякие такие причиндалы.. Но! Эт ток возможно при включенном js (или vb).. Да и толку в нашем случае мало, потому как к url`е post параметры не припишешь)))) Хотя можь решение есть.. Над будет порыскать.. Потом=)
страница генерится в результате обработки формы (method=post).
При рефреше страницы опять же происходит попытка отправить запрос. Как этого избежать?
В идеале хочется следующее:
1. юзаем форму
2. обрабатывем запрос (пихаем данные в БД)
3. показываем результат.
если в п.3 сделать рефреш, то данные в БД запишутся дважды :(
Есть решение - в п.3 форвардим на другую страничку и передаем параметрами все что нужно для отображения результата. В этом случае при рефреше на страничке результата данные в БД писаться не будут. Кривовато :).
Есть какие-нить иные варианты?
А вот еще вопросец в догонку:
страница генерится в результате обработки формы (method=post).
При рефреше страницы опять же происходит попытка отправить запрос. Как этого избежать?
В идеале хочется следующее:
1. юзаем форму
2. обрабатывем запрос (пихаем данные в БД)
3. показываем результат.
если в п.3 сделать рефреш, то данные в БД запишутся дважды :(
Есть решение - в п.3 форвардим на другую страничку и передаем параметрами все что нужно для отображения результата. В этом случае при рефреше на страничке результата данные в БД писаться не будут. Кривовато :).
Есть какие-нить иные варианты?
Привет. Это не кривовато. Это абсолютно правильное решение.
Однако, если быстро-быстро :D два раза нажать
"Назад", мы попадем как раз на п.2 и получим повторное добавление.
Поэтому-то интересуюсь другим вариантом.
ЗЫ: за абсолютно отдельное спасибо. Мелочь, а приянто :)
страница генерится в результате обработки формы (method=post).
При рефреше страницы опять же происходит попытка отправить запрос. Как этого избежать?
В идеале хочется следующее:
1. юзаем форму
2. обрабатывем запрос (пихаем данные в БД)
3. показываем результат.
если в п.3 сделать рефреш, то данные в БД запишутся дважды :(
Есть решение - в п.3 форвардим на другую страничку и передаем параметрами все что нужно для отображения результата. В этом случае при рефреше на страничке результата данные в БД писаться не будут. Кривовато :).
Есть какие-нить иные варианты?
Та же самая проблема, мучало очень долго..
Решил инсертить с помощью аякса)
Есть какие-нить иные варианты?
Есть. Но послушай совет HabaHaba он прокоментил абсолютно верно.