2014-11-26 4 views
1

Есть ли какой-либо «in-use» -case для конкретного PHP-файла в AJAX?Ajax -PHP in use

Например: На моем сайте есть многочисленные скрипты AJAX, работающие одновременно. Сценарий PHP уже используется для сценария AJAX. Что это означает для других сценариев AJAX? Они подключаются к новому экземпляру скрипта PHP или что? Или я совершенно неправ?

+3

PHP полностью без гражданства, разделённый ни один двигатель. Следовательно, да, по каждому запросу имеется уникальная отдельная версия загруженного обработчика. – mudasobwa

+1

Файл php будет загружен отдельно для каждого запроса ajax. –

+0

@mudasobwa спасибо! – Snickbrack

ответ

1

Как @mudasobwa сказал, что PHP (в большинстве случаев) без гражданства. Это не PHP, который является stateles, но это HTTP, который является протоколом без учета состояния.

Таким образом, каждый запрос полностью отделен друг от друга, и они ничего не знают о запросе до или после. Вот почему есть такие вещи, как SESSION, POST и GET для отправки или обмена информацией по нескольким запросам PHP (HTTP).

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

1

Как уже упоминалось в комментариях, каждый запрос является отдельным.

Однако, если вы используете сеансы, в php-файлах, запрошенных ajax, и один и тот же запрос занимает некоторое время для обработки, ваш второй ajax может зависать, если он пытается получить доступ к одному сеансу. Это связано с тем, что php блокирует ваш файл сеанса, пока он не узнает, что с ним выполняется блокирующий поток.

Что вы можете сделать (если вы используете сеанс), это закрыть файл сеанса, вызвав «session_write_close», когда вы знаете, что вам не нужно обновлять сеанс.

http://php.net/session_write_close