这是对这里发现的SO问题的回应 - > Polling every 10 seonds
SO帖子有所帮助,但是当我试图使它符合我的需要时,它就没有用完了。
我有一个PHP脚本,可以将随机数据输入我的数据库。当我将浏览器直接指向'create_new_job.php'时,脚本运行正常。我的问题是,一旦我的主页加载,我似乎无法每10秒运行一次ajax请求来运行脚本。
我的php脚本将数据插入数据库:'create_new_job.php'
我的主页:index.php
这是我的index.php:
<script>
function newjobs() {
var inputjob = $.ajax({
url: "create_new_job.php",
complete: schedulenewjobs
});
inputjob.done(function(data) { alert('Job added!'); }
inputjob.fail(function(data) { alert('Job not added....'); }
}
function schedulenewjobs() {
setTimeout(function() { newjobs(); }, 10000);
}
</script>
首先,我在第
行收到错误 inputjob.fail(.....
但是当我删除'完成'和'失败'通知时,没有任何反应。没有插入数据,我没有收到任何错误。
我不是想要检索任何数据 - 我只想每10秒运行一次'create_new_job.php'。
非常感谢任何帮助。
答案 0 :(得分:5)
你没有正确关闭你的函数,并且每十秒运行一次该函数,你可以使它递归,再次从done()
回调中调用它,或者你可以使用一个区间
(function newjobs() {
var inputjob = $.ajax({
url: "create_new_job.php"
});
inputjob.done(function(data) {
alert('Job added!');
setTimeout(newjobs, 10000); // recursion
});
// ^^ missing closing
inputjob.fail(function() {
alert('Job not added....');
});
})();
答案 1 :(得分:1)
$(document).ready(function(){
setInterval(
newjobs(),
10000
);
});
function newjobs() {
inputjob = $.ajax({
url: "create_new_job.php",
})
.done(function(data) { alert('Job added!'); })
.fail( function(data) { alert('Job not added....'); });
}
答案 2 :(得分:1)
我认为这篇文章会对您有所帮助: Send AJAX request every n seconds using jQuery
sendRequest();
function sendRequest(){
$.ajax({
url: "example.php",
success:
function(data){
$('#listposts').html(data);
},
complete: function() {
setInterval(sendRequest, 10000); // Call AJAX every 10 seconds
}
});
};
答案 3 :(得分:-1)
尝试setInterval函数
setInterval(function() {
function newjobs() {
var inputjob = $.ajax({
url: "create_new_job.php",
complete: schedulenewjobs
});
inputjob.done(function(data) { alert('Job added!'); }
inputjob.fail(function(data) { alert('Job not added....'); }
}
}, 10 * 1000);