문제

AJAX 호출을 수행하는 경우 사용자가 "ESC"를 누르거나 해당 페이지를 나가면 AJAX 호출이 취소됩니까?

AJAX 호출이 취소되면 PHP 스크립트는 수행 중인 작업이 완료될 때까지 계속 실행됩니까(시간 제한에 도달하지 않거나 다른 서버 구성이 중지되는 경우). 아니면 해당 프로세스가 동시에 종료됩니까? 그것이 속한 아파치 아이?

프로세스가 완료되지 않았더라도 Apache 하위 프로세스와 함께 종료되는 경우 해당 프로세스를 유지하는 가장 좋은 방법은 무엇입니까, 아니면 고려해야 할 다른 옵션은 무엇입니까?(ZendX_Console_Process_Unix는 옵션이 아닙니다).

감사해요!

이후 발견:

Firefox에서 "ESC"를 누르면 AJAX 호출이 실제로 취소됩니다(firebug에서 확인).PHP 프로세스는 계속 진행되며 ESC 키를 누르거나 탭을 닫아도 영향을 받지 않습니다.

도움이 되었습니까?

해결책

서버 프로세스가 사용자가 AJAX 호출을 종료하기 전에 시작되면 (창을 닫거나 다른 웹 사이트로 이동) 최종 결과까지 수행됩니다. 그러나 중단 된 Ajax 호출 (데이터 전송이 완료되지 않았음)이 서버가 통화를 처리하지 않습니다.

참고 : ESC를 치는 것은 kyypush 동작을 JavaScript하지 않는 한 Ajax 호출 자체를 종료하지 않습니다.

다른 팁

메모 하나...href 속성을 사용하여 하이퍼링크에서 AJAX 호출을 호출한 경우 YES이면 사용자는 ESC를 누르고 전송을 중지할 수 있습니다.

<a href="javascript:doFoo();">This can be canceled by pressing ESC</a>

<a href="#" onclick="doFoo();">This can NOT be canceled by pressing ESC</a>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top