Проблема
У меня есть долгосрочное задание импорта, которое я запускаю с помощью запроса 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);
Таким образом, он останавливает и перезагружает сеанс, а другой сценарий смог подключиться и получить информацию о сеансе.