Несколько одновременных запущенных запросов ajax в ExtJS 4

Проблема

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

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

Я видел, что Ext.Ajax синглтон, так что, возможно, причина в этом. Поэтому я попытался создать свои собственные объекты Connection с помощью Ext.create ('Ext.data.Connection') , но это не сработало.

Моя текущая цепочка запросов:

  • первый запрос - начало
  • первый запрос - конец
  • второй запрос - начало
  • второй запрос - конец

Но это должно быть :

  • первый запрос - начало
  • второй запрос - начало
  • второй запрос - конец
  • ...может быть больше вторых запросов
  • первый запрос - конец

Вопрос

Браузер должен уметь обрабатывать несколько запросов, внутри ExtJS должно быть ограничение, но я его не нашел?


Обновление 2011-10 -16

Ответ

Проблема была не в ExtJS - извините! Это был PHP, мой первый скрипт работает с сессией, а второй скрипт также пытался получить доступ к сессии. И поскольку сеансы PHP основаны на файлах, файл сеанса был заблокирован из первого сценария запроса, а второй сценарий запроса должен был ждать, пока первый снимет блокировку сеанса.

Я решил эту проблему с помощью этого небольшого фрагмента кода, который я добавил в свой процесс импорта (первый сценарий) после каждой строки x:

 $id = session_id();
 session_write_close();
 sleep(1);
 session_start($id);

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

6
задан Marc 26 October 2011 в 11:43
поделиться