2012-07-16 4 views
-1

AJAX를 사용하여 계산 결과를 표시하고 있습니다. 결과를 반환하는 PHP 파일을 호출 한 다음 웹 페이지에 표시합니다.AJAX를 사용할 때 페이지가 멈추는 경우

때때로 계산에 시간이 오래 걸리고 AJAX 호출에서 결과를 반환 할 때까지 페이지가 멈추는 경우가 있습니다.

아약스를 사용할 수있는 방법이 있으며 웹 페이지에서 다른 작업을 수행 할 수있는 방법이 있으며 AJAX 호출이 반환 될 때까지 기다릴 필요가 없습니다.

저는이 AJAX 호출 함수 (알고있는 표준 함수)를 사용하고 있습니다.

function GetCalculation(str) 
{ 
    var result ; 
    if (window.XMLHttpRequest) 
    { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    { 
     // code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     {   
      result = xmlhttp.responseText ;    
     } 
    } 

    xmlhttp.open("GET","GetRouts.php?q="+str,false); 
    xmlhttp.send(); 
    result = xmlhttp.responseText ; 
    return result; 
} 
+0

AJAX 호출을 만들고 페이지를 응답하게하려면 비동기식 AJAX 호출을해야합니다. 보십시오 [여기에서] (http://www.w3.org/TR/XMLHttpRequest/#the-open-method). –

답변

0

예, open의 세 번째 매개 변수로 true을 전달한 다음 onreadystatechange 이벤트에서 결과를 처리하십시오.

+0

감사합니다. 작동합니다. – guy

0

콜백을 기다려야하는 요청에 따라 데이터를 처리하려면 자바 스크립트가 필요한 경우 Ajax가 비동기입니다. 요청의 데이터를 처리 할 필요가 없다면 (예 : 애니메이션 등)이 함수 외부에서 코드를 작성할 수 있습니다.

관련 문제