페이지가 있으며 주기적으로 "백그라운드"아약스 요청을하고 싶습니다. 따라서 페이지가로드되면 일정 시간 동안 ajax 요청을 보내야합니다.정기적으로 아약스 요청 보내기
나는 cron을 사용할 수 있습니다. 이전에 사용하지 않았으므로 그 작업에 적합한 지 궁금합니다. 다른 더 간단한 방법이 있습니까?
P. 시간 지연은 약 5 분이 소요됩니다.
페이지가 있으며 주기적으로 "백그라운드"아약스 요청을하고 싶습니다. 따라서 페이지가로드되면 일정 시간 동안 ajax 요청을 보내야합니다.정기적으로 아약스 요청 보내기
나는 cron을 사용할 수 있습니다. 이전에 사용하지 않았으므로 그 작업에 적합한 지 궁금합니다. 다른 더 간단한 방법이 있습니까?
P. 시간 지연은 약 5 분이 소요됩니다.
AJAX 요청을 보내는 시간과 완전한 응답을받는 시간 사이에 근본적으로 알 수없는 지연이 있기 때문에 종종 다음 AJAX 호출을 일정 시간 후에 이전의 것이 완료됩니다. 이렇게하면 전화가 겹치지 않도록 할 수 있습니다.
var set_delay = 5000,
callout = function() {
$.ajax({
/* blah */
})
.done(function (response) {
// update the page
})
.always(function() {
setTimeout(callout, set_delay);
});
};
// initial call
callout();
크론은 서버 측에서 실행되며, 당신이 기능을 실행 유지할 수 setInterval
같은 것을 사용하여
:-) 자바 스크립트에서이 문제를 해결해야한다, 그래서 당신은 당신의 사건 뭔가 수 있습니다, HTML 및 AJAX를 사용하는 폴링 AJAX를 통해 URL처럼 :
function updatePage(){
// perform AJAX request
}
setInterval(updatePage, 5000);
'에서는 setInterval (updatePage, 5000),' – stecb
stecb의 코멘트 @ 부연를,'에서는 setTimeout은'eval' setInterval을'버전()'ANS를 사용하지 않을하기 위해 최선을()'. 참조 또는 직접적인 람다에 의해 함수를 항상 직접 사용하십시오. –
너희들 말이 맞아, 나는 대답을 업데이트했다. – Bitterzoet
당신의 레일 버전에 따라 당신은 periodically_call_remote
를 사용할 수 있습니다 그렇지 않으면 당신은 @Bitterzoet 설명하는 JQuery와 대안이 필요합니다.
자세한 정보 in this question.
이 같은 사초에 아약스 요청을 보낼 수 있습니다
setInterval(get_news, 4000);
function get_news(){
$.ajax('/dashboards/get_news', {
type: 'POST',
success: function(result) {
if(result > 0){
$('#div_1').text("See "+result+" new messages");
$('#div_1').show();
}
else{
$('#div_1').css('display', 'none');
}
},
error: function() {
// alert("Error")
}
});
}
당신이 jQuery를 사용하고 있습니까? 그렇다면, 당신은이 방법을 구현할 수 있습니다
// first, you need asing a callback timer
var timeout = 300; //milliseconds
// this method contain your ajax request
function ajaxRequest() { //function to ajax request
$.ajax({
url: "/url/to/request/"
}).done(function(data) {
alert("response is: " + data);
});
}
$(document).on("ready", function(){
//this method will be called every 300 milliseconds
setInterval(ajaxRequest, timeout);
});
페이지의 일부를 업데이트하는 코드는 어디에 두어야합니까? –
평소와 마찬가지로 AJAX에 대한'.done()'콜백에 그 데이터를 넣을 수있다. (예 : $ ('# my_id'). –
oo, 너 필리핀 출신이야. 나는 이틀 안에 거기에있을거야! –