AJAX (prototype / php), выполняющий 2 процесса ajax, зависает до завершения первого - PullRequest
0 голосов
/ 30 апреля 2009

Этот вопрос является продолжением моего предыдущего: Предыдущие вопросы .

Поэтому я настроил свою страницу, чтобы инициировать вызов ajax, чтобы начать обработку некоторых записей. И после каждой записи он обновляет строку в другой таблице, чтобы отслеживать состояние этого процесса. После этого первого вызова AJAX у меня еще один запуск. Это Ajax.PeriodicalUpdater, и он настроен на попадание в файл, который просто запрашивает эту строку в БД и возвращает статус исходного процесса.

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

Это целое приложение работает внутри только базового фреймворка, который мы используем. Ничего сумасшедшего, просто обрабатывает маршрутизацию, основные аспекты шаблонов и т. Д. Так что все эти функции / файлы находятся внутри этого приложения, и все эти вызовы ajax маршрутизируются через это.

Что может быть причиной чего-то подобного?

Ответы [ 2 ]

1 голос
/ 01 сентября 2009

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

Если вашим AJAX-запросам требуется доступ к состоянию сеанса, прочитайте необходимую информацию и затем используйте session_write_close() как можно раньше в своем коде, чтобы снять эти блокировки.

1 голос
/ 30 апреля 2009

Может ли это быть из-за ограничения одновременных подключений, поддерживаемых браузером к конкретному домену?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...