2010-02-17 4 views
0
document.getElementById('contactButton').value = "Sending"; 
xmlhttp.onreadystatechange=stateChanged; 

xmlhttp.open("GET",url,false); 
xmlhttp.send(null); 
function stateChanged(){ 
    if (xmlhttp.readyState==4) { 
    var response = xmlhttp.responseText; 
    if(response == "true"){ 
     document.getElementById('contactButton').value = "Sent :)"; 
    } 
} 

이 자바 스크립트를 실행하면 contactButton은 "보내는 중 ..."으로 설정되지 않습니다. 1 초 동안 정지 한 다음 "보낸 날짜"로 변경됩니다.자바 스크립트 : XMLHttpRequest 작업 전환

자바 스크립트의 처리 순서가 확실하지 않지만 XMLHttpRequest()을 처리하기 위해 작업 전환이 필요합니다.

이것은 분명히 약식 코드이지만, 나는 xmlhttp 전에해야 할 여러 가지 다른 javascript/css 항목이 있습니다. 요청이 전송 될 때 xmlhttp이 대신 처리하는 것처럼 보입니다.

아이디어가 있으십니까?

답변

1

오픈시 false를 전달하므로 동 기적으로 실행됩니다. 이는 readyState를 사용하지 않고 요청이 완료 될 때까지 지연 만한다는 것을 의미합니다.

xmlhttp.open("GET",url,false); 
xmlhttp.send(null); 
if(xmlhttp.status == 200) 
{ 
    var response = xmlhttp.responseText; 
    document.getElementById('contactButton').value = "Sent :)"; 
} 

당신은 스크립트를 걸려 방지하기 위해 비동기로 변경해야합니다, 당신은 아마 쉽게 자바 스크립트 라이브러리를 사용하여 찾을 수 있습니다 : 당신이 동기화를 수행 할 경우, 그것은해야합니다.

+0

좋은 눈! 감사. –

관련 문제