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