Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сброс повторной отправки данных 
:(
    Опции темы
maxipub
Дата 4.8.2010, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Может немного необычный вопрос. Если страница была загружена в результате отправки формы с POST запросом, при ее обновлении через браузер (F5, кнопкой в тулбаре и т.д.), последний спрашивает, отправлять ли данные повторно? Можно как-то отключить эту повторную отправку в случае такого обновлении странички?
PM MAIL   Вверх
bars80080
Дата 4.8.2010, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(maxipub @  4.8.2010,  21:17 Найти цитируемый пост)
Можно как-то отключить эту повторную отправку в случае такого обновлении странички? 

стандартно это делается серверным редиректом на самого себя. какой язык на сервере?

можно попытаться и javascript'ом сразу по загрузке перезагрузить страницу, но это гораздо хуже выглядит и более ресурсозатратно
PM MAIL WWW   Вверх
maxipub
Дата 5.8.2010, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



bars80080, ну это да, а кроме редиректа без вариантов?
PM MAIL   Вверх
bars80080
Дата 5.8.2010, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(maxipub @  5.8.2010,  09:53 Найти цитируемый пост)
а кроме редиректа без вариантов? 

а зачем? очень даже кашерный вариант. при серверном редиректе пользователь даже ничего и не заметит


PM MAIL WWW   Вверх
maxipub
Дата 5.8.2010, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(bars80080 @  5.8.2010,  14:29 Найти цитируемый пост)
а зачем?

Ну хотя бы даже чисто интереса ради.

Цитата(bars80080 @  5.8.2010,  14:29 Найти цитируемый пост)
при серверном редиректе пользователь даже ничего и не заметит

Как это нет? Страничка чуть дольше отзываться будет по-любому.

Да если, к примеру, после отправки формы выводится некая инфа на основе полученной информации? Ее что теперь специально где-то сохранять только ради того чтоб после редиректа отобразить? smile
PM MAIL   Вверх
bars80080
Дата 5.8.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(maxipub @  5.8.2010,  16:01 Найти цитируемый пост)
Да если, к примеру, после отправки формы выводится некая инфа на основе полученной информации? Ее что теперь специально где-то сохранять только ради того чтоб после редиректа отобразить?

вообще-то архитектура изначально строится по-другому.

пользователь отсылает форму,
скрипт на сервере её обрабатывает, если находит ошибки, то просто снова показывает форму с заполненными полями, а также выводит сообщение об ошибке.
если же всё нормально, то скрипт записывает данные в БД и выбрасывает редирект.
куда он направляет пользователя - зависит от поставленных целей. может к примеру снова выбрасывать на пустую форму, чтобы можно было продолжить ввод. или на сводную таблицу данных.

как видишь, здесь нет никакой случайной информации на основе полученных данных
PM MAIL WWW   Вверх
maxipub
Дата 6.8.2010, 10:09 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(bars80080 @  5.8.2010,  20:26 Найти цитируемый пост)
вообще-то архитектура изначально строится по-другому

smile какая еще архитектура? Пахнет отсебятиной. Пруфлинк дадите?

Просто я еще помню сеть 90-х, и редиректы изначально делались даже не столько ради удобства программиста или каких либо выдуманных "архитектур", сколько ради экономии трафика и времени. Когда у вас 9600 бод, проще закрыть окошко с ожиданием редиректа, чем сразу после отправки формы (на том же форуме) грузить всю простыню.

ЗЫ: вообще хотелось бы просто услышать ответ на вопрос, считайте что мне для саморазвития интересно, пусть чисто в теории, но без полемики.

Это сообщение отредактировал(а) maxipub - 6.8.2010, 10:10
PM MAIL   Вверх
IDVsbruck
Дата 6.8.2010, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



maxipub,
барс совершенно прав ... и с какой стати страничка будет дольше отдаваться? - 0.005 сек не в расчет.

Не скажу за архитектуру сетей в 90-х, верю что гуру, но вот сегодня предложенный вариант очень даже кошерный. Суть в том, что серверный редирект - не рефреш страницы, а всего лишь перенаправление запроса по другому адресу (в твоем случае - по тому же) - он даже сервер не покидает. В сравнении с временем проходжения запроса и отдачи ответа, измеряемые секундами, редирект займет доли секунды и ни на что не повлияет, зато скинет повторную отправку данных.
PM MAIL   Вверх
bars80080
Дата 6.8.2010, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(maxipub @  6.8.2010,  10:09 Найти цитируемый пост)
какая еще архитектура? Пахнет отсебятиной. Пруфлинк дадите?

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

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

от скорости, как только что сказали, ничего не зависит. если для канала заметен редирект, то пользователь по определению привык ждать минутами загрузки сайтов, потому как строка редиректа занимает ничтожную долю, по сравнению с объёмом передачи данных даже для маленькой страницы
PM MAIL WWW   Вверх
maxipub
Дата 6.8.2010, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(IDVsbruck @  6.8.2010,  12:51 Найти цитируемый пост)
с какой стати страничка будет дольше отдаваться? - 0.005 сек не в расчет.

Вы засекали? smile Я ради интереса только что проверил, вышло ~0.015 сек.
Но это чисто редирект, а ведь нам еще надо принять данные, обработать - это некое время. И еще надо их специально где-то сохранить лишь для того, чтоб после редиректа отобразить. smile

Ну ладно, в любом случае непонятно русло дискуссии. Ок, редирект - вариант. Но я спрашиваю, а какие еще варианты есть? Мне просто интересно знать. Так что просьба ответить на вопрос, если кто может, а не начинать убеждать что редирект - это то что мне надо. Еще раз, оно мне не надо, мне интересны другие варианты, если они есть в принципе.

Цитата(bars80080 @  6.8.2010,  14:18 Найти цитируемый пост)
да отсебятина.

и
Цитата(bars80080 @  5.8.2010,  20:26 Найти цитируемый пост)
архитектура изначально строится по-другому.

Как-то не вяжется. Просто или пишите "лично я делаю так то и так то..." или давайте линк на ман. А то вы просто ввели меня в замешательство, "архитектура" - это что-то технически описанное, документированное и стандартизированное. По крайней мере, в моем понимании. smile 
PM MAIL   Вверх
bars80080
Дата 6.8.2010, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(maxipub @  6.8.2010,  19:54 Найти цитируемый пост)
Вы засекали? smile Я ради интереса только что проверил, вышло ~0.015 сек.

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

Цитата(maxipub @  6.8.2010,  19:54 Найти цитируемый пост)
Но это чисто редирект, а ведь нам еще надо принять данные, обработать - это некое время. И еще надо их специально где-то сохранить лишь для того, чтоб после редиректа отобразить

а какое отношение имеет редирект к принятию данных, их обработке и хранению? или вы этого не делаете? а зачем тогда отправляете данные на сервер?


Цитата(maxipub @  6.8.2010,  19:54 Найти цитируемый пост)
Как-то не вяжется. Просто или пишите "лично я делаю так то и так то..." или давайте линк на ман. А то вы просто ввели меня в замешательство, "архитектура" - это что-то технически описанное, документированное и стандартизированное. По крайней мере, в моем понимании.

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


PM MAIL WWW   Вверх
maxipub
Дата 7.8.2010, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(bars80080 @  6.8.2010,  20:14 Найти цитируемый пост)
сами пальцем на кнопку секундомера жали?

Ну да, как всегда. smile

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

Код

<?php

session_start();

if (!isset($_GET['check']))
{
    $_SESSION['ts'] = microtime(true);
    header('Location: ?check=yes');
}

$time_end = microtime(true);
$time = $time_end - $_SESSION['ts'];

echo 'Редирект прошел за '.$time.' сек.<br /><a href="?c='.mt_rand().'">Еще раз</a>.';

?>


Цитата(bars80080 @  6.8.2010,  20:14 Найти цитируемый пост)
или вы этого не делаете?

Представьте себе, нет. smile


Цитата(bars80080 @  6.8.2010,  20:14 Найти цитируемый пост)
хотя она есть

Попадется - не забудьте. ;)


Цитата(bars80080 @  6.8.2010,  20:14 Найти цитируемый пост)
редирект - стопудово задокументирован

Не редирект, а "вообще-то архитектура изначально строится по-другому...".

Будут ответы по теме - велкам. Благодарю всех отозвавшихся. Всего хорошего.
PM MAIL   Вверх
bars80080
Дата 7.8.2010, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(maxipub @  7.8.2010,  13:37 Найти цитируемый пост)
Представьте себе, нет.

Цитата(bars80080 @  6.8.2010,  20:14 Найти цитируемый пост)
а зачем тогда отправляете данные на сервер?



PM MAIL WWW   Вверх
IDVsbruck
Дата 9.8.2010, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Цитата(maxipub @  6.8.2010,  19:54 Найти цитируемый пост)
Вы засекали?  Я ради интереса только что проверил, вышло ~0.015 сек.
Но это чисто редирект, а ведь нам еще надо принять данные, обработать - это некое время. И еще надо их специально где-то сохранить лишь для того, чтоб после редиректа отобразить.

Засек ... 0.0023 - пришлось даже задействовать наносчетчик, чтобы актуальней было ... у меня машина 8-миядерная с хорошими характеристиками. На серваке, думаю, побыстрее будет.

Судя по ответам, ты просто не очень понимаешь сути предложенного решения.
Предложенное решение просто добавляет к твоему обычному решению еще редирект - не повторные записи или отображения, а только редирект. То есть в твоем случае запрос приходит на сервер, ты его обрабатываешь, дальше записываешь данные или что ты там делаешь. Наш вариант ТОЛЬКО добавляет редирект на этот же адрес - не надо ничего нигде сохранять "чтобы после редиректа отобразить". Поэтому добавляй просто свои 0.015 секунд и не парь мозг. Кстати, время прихода и отсылки запроса и ответа на удаленном (не локальном тестовом!) сервере - от 1 до 3 секунд, если без больших массивов данных. Даже если взять 1 сек, то 0.015 составляет 1.5% от времени (в моем случае 0.23%). Стоит ли эта мизерная цифра этих дебатов? - Или это просто желание попридираться?
PM MAIL   Вверх
maxipub
Дата 11.8.2010, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(bars80080 @  7.8.2010,  14:21 Найти цитируемый пост)
а зачем тогда отправляете данные на сервер?

Есть масса задач анализа либо преобразования информации самого различного типа и характера - перевод текста, преобразование введенного кода в статичный html-блок с подсветкой, обработка изображения (создание аватара, применение фильтров, эффекты), загруженного пользователем, валидация кода, преобразование формата данных и т.д. и т.п., продолжать можно до бесконечности.

Цитата(IDVsbruck @  9.8.2010,  12:19 Найти цитируемый пост)
Судя по ответам, ты просто не очень понимаешь сути предложенного решения.

Вы о чем? Будьте добры, вникайте в суть вопроса.

Цитата(maxipub @  6.8.2010,  19:54 Найти цитируемый пост)
Ну ладно, в любом случае непонятно русло дискуссии. Ок, редирект - вариант. Но я спрашиваю, а какие еще варианты есть? Мне просто интересно знать. Так что просьба ответить на вопрос, если кто может, а не начинать убеждать что редирект - это то что мне надо. Еще раз, оно мне не надо, мне интересны другие варианты, если они есть в принципе.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.