2012-09-17 7 views
0

현재 웹 프런트 엔드를 사용하여 기사를 편집 할 때 잠금/잠금 해제 기능을 사용하고 있습니다. PHP 종료 된 AJAX 코드 실행 후 코드 실행

  • 즉시에 제한없이 AJAX 요청을 보낼 편집 페이지에 액세스 할 때

    1. 기사를 잠금 : 편집 후 기사의 잠금을 해제 할 수있는 신뢰할 수있는 기술의 브라 우어을 닫거나 나는 다음과 같은 개념을 개발 한 페이지를 떠나지로 잠금 해제 작업

    잠금 해제 작업에는 다음 코드가 있습니다. 아약스 요청이 취소 될 때까지 아무것도하지 않아야합니다.

    ignore_user_abort(true); 
    set_time_limit(0); 
    
    while (!connection_aborted()) { 
    
        usleep(100000); 
    } 
    
    // do database operations to unlock the article 
    

    그러나 ajax 요청이 ie에 의해 취소 된 후에. 페이지를 떠나면 절대로 while 루프를 벗어나지 않습니다. 나는 또한 중단 된 연결을 테스트하기 위해 이것을 시도했다 : 동일한 결과로 루프를 벗어나지 않을 것이다 :

    while (connection_status() === CONNECTION_NORMAL) 
    

    . PHP 매뉴얼에서 촬영

  • 답변

    0

    견적

    PHP는 시도가 클라이언트에 정보를 전송 될 때까지 사용자가 연결을 중단했다 감지되지 않습니다. echo 문을 사용한다고해서 정보가 전송되는 것을 보장하는 것은 아닙니다. flush()를 참조하십시오.

    그래서 당신의 while 루프에서 클라이언트에 더미 데이터를 전송해야합니다

    ignore_user_abort(true); 
    set_time_limit(0); 
    
    while (!connection_aborted()) { 
        echo "null"; @flush(); @ob_flush(); 
        usleep(100000); 
    } 
    
    // do database operations to unlock the article 
    
    +0

    참, 내 질문을 게시 한 후 그 읽기 : D를 –