2014-09-09 7 views
0

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

Спасибо.

+0

Предполагая, что запрос AJAX является GET, это должно выполняться намного быстрее, чем нажать кнопку отправки (POST) ..... AJAX GET должен быть выполнен до перезагрузки страницы –

ответ

3

Одно из двух:

  1. Если вы отмените на уровне страницы отправить событие и обрабатывать формы с помощью AJAX, страница не будет обновляться, и ваш код будет нести ответственность за управление состоянием DOM в ответ на запрос AJAX.
  2. Если вы не отмените отправку на уровне страницы, запрос AJAX будет отправлен, а затем страница будет перезагружена. В этом случае запрос AJAX будет оставлен. Сервер может обрабатывать или не обрабатывать его, браузер игнорирует любой ответ.

    это не будет зависеть от скорости интернет-пользователя

Никогда, никогда не полагаться на время ресурсов для управления асинхронными операциями. Это совершенно непредсказуемо. Асинхронные операции, как правило, обрабатываются различными формами продолжений или обратных вызовов в различных языковых конструкциях, которые либо ждут другого потока для ответа, либо попадают в очередь, чтобы прервать текущий поток для ответа. Стройте логику соответственно. Опора на время ресурсов похожа на использование цикла for с операцией известной скорости для измерения времени прохождения. Это будет изменяться в каждом случае.

1

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

Смежные вопросы