За последние 24 часа нас посетили 34352 программиста и 1736 роботов. Сейчас ищет 901 программист ...

Выбор технологии перезагрузки ХТМЛ-страницы

Тема в разделе "PHP для новичков", создана пользователем Pcrepair, 17 авг 2012.

  1. Pcrepair

    Pcrepair Активный пользователь

    С нами с:
    22 сен 2011
    Сообщения:
    14
    Симпатии:
    0
    Добрый день. Есть следующая ситуация:
    - клиент(веб-браузер) загружает страницу с сервера
    - пользователь вводит текст в поле ввода на странице и нажимает кнопку
    - введенные данные уходят в сервер и далее
    - сервер? подсовывает браузеру вместо загрузочной страницы другую с надписью "ЖДИТЕ"
    - после обработки текста введенного пользователем сервер выводит в браузер полученные данные(типа перезагружает страницу)
    Пользователь не должен обновлять страницу самостоятельно, а просто тупо ждать пока все само сработает

    Вопрос: какие технологии лучше использовать?
    читал немного про AJAX Sajax и прочее
    задача простая (вроде бы), желательно что то попроще, без заморочек и усложнений
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Ну при нажатии на кнопку - отправляй Ajax запрос и на JS рисуй надпись "Ждите". Когда ответ на ajaxзапрос придёт - обрабатывай его нужным образом (тоже на JS).
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Надо использовать недокументированный http-заголовок
    Код (Text):
    1. header('Refresh: 5'); // 5 это секунды
     
  4. Pcrepair

    Pcrepair Активный пользователь

    С нами с:
    22 сен 2011
    Сообщения:
    14
    Симпатии:
    0
    а что кто думает по поводу "сервлет + цикл по обновлению страницы" ?
     
  5. а если запрос займёт более 5ти секунд??
    а если меньше, зачем пользователю так долго ждать?? не вариант.

    просто, НО не рационально.
     
  6. Pcrepair

    Pcrepair Активный пользователь

    С нами с:
    22 сен 2011
    Сообщения:
    14
    Симпатии:
    0
    тут вот еще что - между отсылкой на сервер данных и получением ответа может пройти 5...15 минут. так что постоянная сессия с сервером - имеет значение
    к тому же если к серверу подключится еще какой клиент в этот момент, он должен получить страницу "ЗАНЯТО, заскочи попозже"
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    После отсылки запроса перенаправлять пользователя на скрипт, у которого только одна функция: проверка, что запрос пользователя выполнен. Если выполнен, переадресовывать на результат, если нет - писать ждите и слать этот заголовок.
     
  8. тоже самое что
    может быть на обработку данных понадобится час, два, день, а если у пользователя интернет лимитный? на запрос конечно немного уходит,но если это в течении дня будет? постоянное соединение меньше жрёт. не хочешь постоянное - делай соединение раз в пять секунд
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Для запросов такого типа нужна соответствующая архитектура. У запроса должен быть ID, этот ID должен быть в урле страницы, на которой написано "ждите". Ведь постоянное соединение может оборваться, или можно случайно закрыть браузер и потом что, снова ждать? Надо делать так чтобы пользователь мог перезагрузить сам страницу и увидеть результат или то же самое "ждите".
    Я за обновление потому, что постоянное соединение в веб не сильно надежно.
     
  10. тогда вариант COMET - передача данных по инициативе сервера.
    причём для этого необязательно постоянное соединение. в прошлом посте я немного ступил... сервер сам скажет странице когда данные обработаны и перезагрузит её