2012-08-28 4 views
0

현재 라이트 자바 스크립트 라이브러리를 사용하여 아약스 전화를 걸고 있습니다. 라이브러리는 'jx'입니다.Ajax 통화 제한 시간

그리고 제대로 작동합니다. 그러나 특정 시간 후에 응답이 없으면 아약스 호출을 중지하기 위해 시간 초과를 추가하고 싶습니다. jquery와 같은 시간 초과 매개 변수가있는 것처럼 보입니다.

순수 자바 스크립트 덕분에 시간 제한을 구현할 수있는 방법이 있습니까? 이와 같이 :

timer = setTimeout('function{stop the call}', 20000); 
jx.load(url, function(data){ 
     // get the data 
     clearTimeout(timer); 
     } 

나는 그것을 시도했지만 잘 작동하지 않습니다. 또는 this 당신이 사용하고있는 라이브러리가

+1

이 코드를 수정합니다. ''function {}은''통화 멈춤 '대신''function() {'통화 멈춤}''이어야합니다. 또한 아약스 호출 후 시간 제한을 설정합니다. – PitaJ

+0

ajax 호출 후 시간 초과? 왜? 타이머가 끝나면 전화를 끊을 수 있습니까? –

+0

사용중인 lib에 취소 핸들러가 없으므로이 라이브러리에서 작업을 수행 할 수 없습니다. 그리고, 당신이 setTimeout을 어디에 두 었는지는 중요하지 않다고 생각합니다. 그것은 단지 개인적인 취향입니다. – PitaJ

답변

2

경우 AJAX 호출이가 SYN하게, 가능한 것 같다 :

var xhr = jx.init(); 
var timer = setTimeout(function(){ 
    if(xhr && xhr.abort) xhr.abort(); 
}, 20000); 

jx.load(url, function(data){ 
    clearTimeout(timer); 
}); 
+0

예이 라이브러리를 사용하고 있습니다 :) 지금 당장 시도 할 것입니다! 감사합니다! –

+0

방금 ​​붙여 넣은 코드를 추가했습니다. jx.http.abort()를 절대로 호출하지 않는 것 같습니다. 타이머에 감사 드리며 Ajax 호출의 응답을받습니다. –

+0

jx 소스를 다시 보았습니다. 처음에는 잘못 생각한 것 같습니다. 위의 업데이트 된 코드를 사용해 볼 수 있습니까? – bfavaretto