2011-04-26 2 views
1

페이지에 여러 링크가 있습니다.JavaScript : 브라우저가 새 페이지를 열기 전에 JS 수행을 얼마나 오래 기대할 수 있습니까?

나는 링크를 클릭하여 사용자를 추적해야합니다.

즉, 사용자가 Ajax 요청으로 내 서버로 보낸 링크를 클릭하면 서버가 요청을 처리하고 일부 데이터를 반환합니다. 또한 이러한 데이터는 필요에 따라 클라이언트 측에서 처리되어 서버 통계로 전송됩니다.

이러한 모든 요청 및 데이터 처리에는 일정 시간이 필요합니다.

제 질문은 실용적입니다. 브라우저가 이러한 모든 작업을 얼마나 오래 수행 할 것으로 예상 할 수 있습니까? 시간에는 한계가 있습니까?

링크를 클릭

가 사용 JS는 false를 반환 :

그냥 지금은 다음과 같은 옵션이 있습니다. 필요한 모든 기능을 수행 한 다음에 만 새 창을 열 수 있습니다.

따라서 브라우저의 예상에 따른 문제를 피할 수 있습니다.

답변

1

AJAX 요청이 완료 될 때까지 링크가 추적되지 않도록하려면 동기 요청을 수행해야합니다. 예를 들어 :

link.onclick = function() { 
    var xhr = new XMLHTTPRequest(); // and the cross-browser equivalents 

    xhr.open('GET', 'yourscript.cgi?data1=foo&data2=bar', false); 
    // false means do the request synchronously 

    xhr.send(); // won't return till the request is complete 

    // you can access the data as xhr.responseText or xhr.responseXML 
}; 

이 일정 기간을 기다리는 것보다 필요한 통지를하는 훨씬 더 신뢰할 수있는 (그리고 아마도 더 빠른) 방법입니다.

관련 문제