2011-10-28 2 views
-2

У меня есть клиентская программа ExtJS, которая взаимодействует с сервером с использованием синхронного AJAX. Более 95% ответов поступают менее чем за 1 секунду, но есть несколько случаев, когда сервер может выполнять команды в течение 10 секунд или более. Вот почему мне нужен какой-то механизм, который может сказать пользователю, что это не ошибка (форма «PLS wait»)Синхронный запрос AJAX и операции во время ожидания

So. Мне нужно что-то около

  1. Отправить запрос;
  2. setTimeOut ('show loading form', 2 sec);
  3. ждать ответа
  4. закрыть Загрузка формы
  5. отклика процесса.

Есть ли способ выполнить некоторую функцию во время ожидания синхронного ответа AJAX?

P. S. Я использую синхронно из-за наследия, нет возможности исправить его (лучший способ - более 6 месяцев работы).

+1

Нет, вы не можете оправдать синхронный Аякс когда-либо. IE9 сбой и ожоги при использовании sjax. Рефакторинг плохого кода. – Raynos

+0

Мне нужно это для Chrome и Firefox (только последняя версия) – TheHorse

+0

В старте мы отвечаем на все запросы менее чем за 1 секунду. – katspaugh

ответ

1

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

0

Да, вы можете. Это называется асинхронный jax. Это означает, что пока вы выполняете свой HTTP-запрос, вы можете делать другие вещи.

Однако, с синхронно jax, вы не можете этого сделать.

JavaScript не имеет резьбы.

Это означает, что синхронный запрос ajax заблокирует вашу одну и только нить.

Лучшее, что вы можете сделать, это показать экран загрузки до каждый sjax запрос и удалить его после каждого запроса.

+0

Я могу реализовать язык скриптов с 1 потоком, который может это сделать, с помощью C++. – TheHorse

+0

@ TheHorse жаль, что? Ты можешь. Вы можете реализовать язык сценария с _one thread_, который может делать _two things_ параллельно? Сделай это. – Raynos

+0

Не параллельно. Знаете ли вы о мультиплексоре? – TheHorse

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