AJAX 요청이 동시에 실행되지 않음
성능을 최적화하기 위해 웹 애플리케이션에서 두 개의 동시 AJAX 요청을 활용하여 진행 상황을 추적합니다. 긴 작업 중. 그러나 두 번째 요청은 첫 번째 요청이 완료될 때까지 지연됩니다.
근본 원인: 세션 차단
PHP는 기본적으로 세션 저장을 위해 파일 기반 접근 방식을 사용합니다. session_start()로 세션이 시작되면 세션 파일에 대한 배타적 쓰기 잠금을 획득합니다. 결과적으로 세션 파일에 액세스하려는 다른 모든 요청은 잠금이 해제될 때까지 차단됩니다.
해결책: 파일 기반 세션 비활성화
한 가지 해결책은 비활성화하는 것입니다. php.ini 구성 파일을 수정하여 파일 기반 세션 저장소:
session.save_handler = redis session.save_path = tcp://localhost:6379
이 변경 사항은 세션 데이터를 Redis 서버로 리디렉션하여 파일 잠금 문제를 제거합니다.
대안: 세션 파일 쓰기 닫기
또는 데이터를 쓴 후 세션 파일을 명시적으로 닫아 세션 파일 쓰기 잠금을 해제할 수 있습니다.
<?php session_start(); $_SESSION['foo'] = 'bar'; // Write data to the session session_write_close(); // Release the file write lock
이 기술을 사용하면 세션 데이터를 나중에 읽으세요. 하지만 세션 쓰기 잠금으로 인해 다른 요청이 차단되는 것을 방지합니다.
위 내용은 다음은 질문 형식을 활용한 몇 가지 제목 옵션입니다. * 내 AJAX 요청이 PHP에서 동시에 실행되지 않는 이유는 무엇입니까? (문제에 집중) * AJAX 요청으로 진정한 동시성을 달성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!