Комплексная форма отправки с использованием AJAX для обработки дополнительного скрипта - PullRequest
0 голосов
/ 24 июня 2009

У меня есть существующая форма регистрации, которая отправляется традиционным (не-ajax) способом. Я хочу соединить некоторые Javascript, чтобы я мог использовать некоторые данные из этой формы, чтобы заполнить другие поля в другой базе данных. Если эта вставка занимает значительное время (одну минуту), будет ли страница заблокирована до возврата вызова AJAX?

<script language="javascript">
$(document).ready(function(){   
    $("#setupform").submit(function(){
        doAJAXcallHERE();
    });
});
</script>

В принципе, не остановится ли моя веб-страница, если страница PHP, вызываемая функцией AJAX, обрабатывается более минуты?

Спасибо!

Ответы [ 2 ]

1 голос
/ 24 июня 2009

Если запрос займет больше пары секунд, вам, вероятно, следует:

  • Отключите кнопку «Отправить» после выполнения вызова, чтобы они не пытались повторно отправить форму снова и снова.
  • Вывести на экран какое-то сообщение, информирующее их о том, что их запрос обрабатывается, с просьбой подождать там!
  • Отображение какого-то анимированного индикатора вместе с сообщением.

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

0 голосов
/ 24 июня 2009

уже ответил правильно, но я хотел бы добавить еще ... на странице php вам нужно использовать установленное максимальное время выполнения через set_time_limit(0). Ваш сценарий отправки ajax должен быть хорошо оптимизирован. Особенно IE6 имеет много проблем при отправке файлов и публикации данных с помощью ajax. Если вы используете странную технику (я часто использую), вам может понадобиться изменить ваш скрипт на простой 1. Некоторое время назад у меня была проблема с IE6, как и у вас. Браузер сам себя блокировал. только потому, что определение массива для сериализации нескольких радиокнопок. все другие браузеры хорошо работают со сценарием, но IE6 останавливается, ждет и ждет ... даже если IE7 работал отлично.

Кстати, кажется, вы используете Jquery ... Я советую вам использовать плагин jquery blockui на malsup.com. Также вы должны сообщить своему посетителю / клиенту, чтобы он подождал.

...