Добрый день. Есть следующая ситуация: - клиент(веб-браузер) загружает страницу с сервера - пользователь вводит текст в поле ввода на странице и нажимает кнопку - введенные данные уходят в сервер и далее - сервер? подсовывает браузеру вместо загрузочной страницы другую с надписью "ЖДИТЕ" - после обработки текста введенного пользователем сервер выводит в браузер полученные данные(типа перезагружает страницу) Пользователь не должен обновлять страницу самостоятельно, а просто тупо ждать пока все само сработает Вопрос: какие технологии лучше использовать? читал немного про AJAX Sajax и прочее задача простая (вроде бы), желательно что то попроще, без заморочек и усложнений
Ну при нажатии на кнопку - отправляй Ajax запрос и на JS рисуй надпись "Ждите". Когда ответ на ajaxзапрос придёт - обрабатывай его нужным образом (тоже на JS).
Надо использовать недокументированный http-заголовок Код (Text): header('Refresh: 5'); // 5 это секунды
а если запрос займёт более 5ти секунд?? а если меньше, зачем пользователю так долго ждать?? не вариант. просто, НО не рационально.
тут вот еще что - между отсылкой на сервер данных и получением ответа может пройти 5...15 минут. так что постоянная сессия с сервером - имеет значение к тому же если к серверу подключится еще какой клиент в этот момент, он должен получить страницу "ЗАНЯТО, заскочи попозже"
После отсылки запроса перенаправлять пользователя на скрипт, у которого только одна функция: проверка, что запрос пользователя выполнен. Если выполнен, переадресовывать на результат, если нет - писать ждите и слать этот заголовок.
тоже самое что может быть на обработку данных понадобится час, два, день, а если у пользователя интернет лимитный? на запрос конечно немного уходит,но если это в течении дня будет? постоянное соединение меньше жрёт. не хочешь постоянное - делай соединение раз в пять секунд
Для запросов такого типа нужна соответствующая архитектура. У запроса должен быть ID, этот ID должен быть в урле страницы, на которой написано "ждите". Ведь постоянное соединение может оборваться, или можно случайно закрыть браузер и потом что, снова ждать? Надо делать так чтобы пользователь мог перезагрузить сам страницу и увидеть результат или то же самое "ждите". Я за обновление потому, что постоянное соединение в веб не сильно надежно.
тогда вариант COMET - передача данных по инициативе сервера. причём для этого необязательно постоянное соединение. в прошлом посте я немного ступил... сервер сам скажет странице когда данные обработаны и перезагрузит её