2011-12-16 2 views
2

내 웹 페이지는 아주 긴 PHP 스크립트에서 데이터를 반환하기 위해 아약스 호출을 사용하므로 페이지를 일찍 끝내고 페이지를 다시로드하면 해당 PHP 스크립트가 계속 수행되므로 문제가 발생합니다.이전에 실행중인 스크립트의 실행을 중단하도록 PHP 서버에 알릴 수 있습니까?

이전 Ajax 요청의 실행을 중단하도록 서버에 알릴 수있는 방법이 있습니까?

감사

답변

0

은 어쩌면이 스크립트에 대한 set_time_limit() 기능을 사용하려고합니다.

또는 몇 가지 PHP 스크립트를 만들고 임의로 URL을 생성합니다.

-1

페이지가 다시로드 될 때 XMLHttpRequest 객체를 null로 설정하려고 했습니까?

0

직접적으로. 작업이 외부 (웹 서버에 대한) 프로세스로 오프로드되는 스킴을 설정해야하며 해당 프로세스에는 웹 서버가 설정된 통신 채널이있어 모든 작업을 중단해야하는지 확인할 수 있습니다 너무 자주 (예 : 단순하지만 이상적이지 않은 구성표는 "잠금 파일"의 마지막 수정 시간을 검사하는 것이고, 과거 X 초보다 길면 작업을 중단합니다).

그러면 웹 페이지에서 스크립트를 호출하여 백그라운드 작업을 적절하게 유지합니다 (예 : 이전 예제의 잠금 파일을 터치).

이렇게하면 AJAX 요청을 통해 작업이 시작되면 클라이언트는 서버에 "연결 유지"요청을하기 시작하고 서버는 외부 연결 프로세스에 "연결 유지"메시지를 전달합니다. 사용자가 페이지를 다시로드하면 연결 유지 임계 값이 경과하면 "연결 유지"요청이 중지되고 작업자 프로세스가 중단됩니다. 모든 것이 잘되고 작업이 완료되면 서버는 작업자 프로세스와의 통신 채널을 통해이를 감지하고이를 다음 연결 유지 "핑 (ping)"에서 클라이언트에보고합니다.