2010-08-13 1 views
0

나는 다음과 같은 상황이 :() PHP 스크립트 전에 함수가 완료 JQuery와로드를 통해 PHP 스크립트의 결과를 얻을 수

JQuery와 :

$(function(){ 
     $('input[type="button"]').click(function(){ 
     $('#result').load('script.php'); 
     }); 
}); 

이 script.php :

<?php 
    echo "1"; 
    sleep(2); 
    echo "2"; 
    sleep(2); 
    echo "3"; 
?> 

현재 jquery로드 함수는 PHP 스크립트가 완료 될 때까지 기다렸다가 결과를 t에 표시합니다 argeted div ... 그래서이 경우에 4 초를 기다린 다음 123을 표시합니다.

내가 달성하고자하는 것은 PHP 스크립트가 완료되기 전에 jquery로드 함수를 별도로 라이브 결과를 반환하도록하는 것입니다. . 개별적으로는 목표 div 1에서 2 초를 기다린 다음 2 초, 다시 2 초, 3을 의미합니다.

예를 들어 이것이 가능합니까?

+0

별도 요청이 필요합니다. – tcooc

답변

1

나쁜 생각은 당신의 setTimeout 기능 (들)과 클라이언트에서 그것을해야, 서버 측에서 세속적합니다 : 서버에서 즉각적인 응답을 얻고, 그러나 당신이 클라이언트에서처럼 사용

$.get('script.php', function(data){ 
    $('#div1').yourcode(); 
    setTimeout(function(){ 
     $('#div2').yourcode(); 
    }, 2000); 
}); 
+0

신속하고 신속하게 답변 해 주셔서 감사합니다. 내 질문의 요점은 시간 초과 또는 수면에 관한 것이 아니라 내가 달성하려고하는 것을 더 잘보기 위해 수면을 사용했습니다. 질문을 재결합하자. (미안하지만 내가 영어를 모국어가 아닌 영어로 번역했다.) 제 말은 : jquery load 함수를 통해 PHP 스크립트에서 정보를 검색 할 수 있습니까? PHP 스크립트는 실제로 끝나나요? 예를 들어 PHP에서 여러 개의 echo가있는 경우 동일한 div에서 각 echo를 개별적으로 검색하려면 – Alex

0

내가 아는 한 콜백/처리기 함수는 XMLHttpRequest이 완료되거나 (준비 상태 4에 도달했음을 의미하는) 완료 될 때까지 실행되지 않기 때문에 jquery로 수행 할 수 있다고 생각하지 않습니다. PHP에서 flush()을 사용하여 에코 후 출력을 보낸 다음 자신의 ajax XMLHttpRequest 객체/스크립트를 사용하고 부분 요청 데이터가 들어있는 3과 같은 다른 준비 상태를 찾습니다. 그것은 준비 상태와 브라우저의 불일치로 인해 주로 할 PITA이고, 나는 이것을 할 수있는 사전 제작 된 라이브러리를 보지 못했을 것입니다. 그래서 당신은 아마 당신 자신이 뭔가를 써야 할 것입니다. 상자의

Some info about using ready states

1

호, 이것은 jQuery.load 가능하지 않을 것이다(). 이전의 두 답변은 옳았습니다. XMLHttpRequest를 끔찍하게 복잡한 프로젝트로 다시 작성해야하거나 Javascript (setTimeout)를 사용하여 서버를 폴링하고 서버에서 이산 값을 가져와 서버에 표시해야합니다. 고객 입장에서. 네가하려는 일에 대해 더 많이 알지 못한다면 나는 후자의 방법 (폴링)을 사용하여 데마 (darma)가 제안한 바를 제안 할 것이다.

관련 문제