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