[JQUERY] 어떻게 AJAX 요청 주기적으로 해고?
JQUERY어떻게 AJAX 요청 주기적으로 해고?
해결법
-
1.다른 사람들이 지적했듯이하여 setInterval과의 setTimeout 트릭을 할 것입니다. 나는 폴 아일랜드어로이 우수한 비디오에서 배운 것을 좀 더 고급 기술을 강조하고 싶었 : http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/
다른 사람들이 지적했듯이하여 setInterval과의 setTimeout 트릭을 할 것입니다. 나는 폴 아일랜드어로이 우수한 비디오에서 배운 것을 좀 더 고급 기술을 강조하고 싶었 : http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/
이상 (느린 연결에 HTTP 요청 등) 반복 간격보다 복용 끝낼 수 있습니다 정기적 인 작업 것이 최선의 setInterval을 사용하지 않는 (). 첫 번째 요청이 완료하고 다른 하나를 시작하지 않은 경우, 당신은 당신이 공유 자원을 소비하고 서로 굶어 여러 요청이 상황에서 끝낼 수 있었다. 당신은 마지막 하나가 완료 될 때까지 다음 요청을 예약 대기하여이 문제를 방지 할 수 있습니다 :
// Use a named immediately-invoked function expression. (function worker() { $.get('ajax/test.html', function(data) { // Now that we've completed the request schedule the next one. $('.result').html(data); setTimeout(worker, 5000); }); })();
단순화를 위해 나는 스케줄링을위한 성공 콜백을 사용했다. 이것의 아래 쪽은 하나 개의 실패한 요청 업데이트를 중지 것이다. 이를 방지하려면 전체 콜백을 대신 사용할 수 있습니다 :
(function worker() { $.ajax({ url: 'ajax/test.html', success: function(data) { $('.result').html(data); }, complete: function() { // Schedule the next request when the current one's complete setTimeout(worker, 5000); } }); })();
-
2.예, 당신은 당신이 실행하고자하는 코드를 호출하는 자바 스크립트의 setTimeout () 메서드 또는에서는 setInterval () 메소드를 사용할 수 있습니다. 여기에서는 setTimeout와 함께 할 수있는 방법은 다음과 같습니다
예, 당신은 당신이 실행하고자하는 코드를 호출하는 자바 스크립트의 setTimeout () 메서드 또는에서는 setInterval () 메소드를 사용할 수 있습니다. 여기에서는 setTimeout와 함께 할 수있는 방법은 다음과 같습니다
function executeQuery() { $.ajax({ url: 'url/path/here', success: function(data) { // do something with the return value here if you like } }); setTimeout(executeQuery, 5000); // you could choose not to continue on failure... } $(document).ready(function() { // run the first time; all subsequent calls will take care of themselves setTimeout(executeQuery, 5000); });
-
3.당신의 setTimeout이나 setInterval을 사용할 수 있습니다.
당신의 setTimeout이나 setInterval을 사용할 수 있습니다.
차이점은 - 에서는 setTimeout 한 번만 기능을 트리거 한 다음 다시 설정해야합니다. 중지하도록 지시하지 않는 한 setInterval을 다시하고 다시 발현을 유발 유지
-
4.나는 아래의 코드를 시도
나는 아래의 코드를 시도
function executeQuery() { $.ajax({ url: 'url/path/here', success: function(data) { // do something with the return value here if you like } }); setTimeout(executeQuery, 5000); // you could choose not to continue on failure... } $(document).ready(function() { // run the first time; all subsequent calls will take care of themselves setTimeout(executeQuery, 5000); });
이것은 지정된 간격 예상대로 작업 페이지가 완전히로드되지 않은 않았다과 기능을 지속적으로 불려졌다. 그것의 더 나은에서는 setTimeout (하는 executeQuery를, 5000)를 호출합니다; 이하와 같은 별도의 외부 기능하는 executeQuery ()
function executeQuery() { $.ajax({ url: 'url/path/here', success: function(data) { // do something with the return value here if you like } }); updateCall(); } function updateCall(){ setTimeout(function(){executeQuery()}, 5000); } $(document).ready(function() { executeQuery(); });
의도 한대로이 정확히했다.
from https://stackoverflow.com/questions/5052543/how-to-fire-ajax-request-periodically by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] jQuery를에 함수를 5 초마다 호출하는 가장 쉬운 방법은 무엇입니까? [복제] (0) | 2020.10.04 |
---|---|
[JQUERY] 어떻게 바인드 'touchstart'모두에 이벤트가 아니라 응답을 '클릭'하는? (0) | 2020.10.04 |
[JQUERY] JQuery와 .each () 뒤로 (0) | 2020.10.04 |
[JQUERY] navigator.geolocation.getCurrentPosition 가끔 가끔 작동하지 않습니다 (0) | 2020.10.04 |
[JQUERY] 어떻게 화면 비율을 유지 / 비례하여 이미지 크기를 조정하려면 어떻게? (0) | 2020.10.04 |