setInterval(makeAjaxCall(),5000);
function makeAjaxCall() {
var url = '/Lines/dbcheck/?LineID=@ViewBag.LineID&ProductID=@ViewBag.ProductID&LastID=@LastID';
var data = {};
$.get(url, data, function(response_text){
if (response_text == 1)
{
document.location.reload();
}
else
{
setInterval(makeAjaxCall(),5000);
}
}, "text");
}
我已经可以从控制器调用函数但只有一次。我想创建函数来检查数据库中的数据并返回1或0.如果它是0我想延迟5秒然后再次调用函数。
问题是参数response_text
没有更新,因为我只能第一次从控制器调用该函数
答案 0 :(得分:1)
setInterval(makeAjaxCall(),5000);
function makeAjaxCall() {
$.ajax({
cache : false,
dataType: "json",
type: "GET",
async:false,
url: url ,
success: function (fdata) {
if (fdata == 1)
{
document.location.reload();
}
else
{
setInterval(makeAjaxCall(),5000);
}
},
error: function (reponse) {
}
});
}
答案 1 :(得分:0)
由于您通过了()
,您的代码会立即执行,而不是等待时间延迟。
setInterval(makeAjaxCall(), 5000);
更改为
setInterval(makeAjaxCall, 5000);
或替代方式
setInterval(function() {
makeAjaxCall();
}, 5000);