当我使用setInterval
和ajax从数据库中检索数据时,如果我从数据库中检索到的数据等于saveHere,它将再次循环直到与变量saveHere不匹配为止,它将冻结浏览器,直到出现问题。我检索到的数据不等于saveHere。
这是一个例子:
var saveHere = 'RED';
var interval = setInterval(function() {
var sample = $.ajax({
type: 'GET',
url: 'database.php',
data : data
}).responseText;
if (sample != 'RED') {
clearInterval(interval);
saveHere = sample;
}
else {
console.log('load again');
}
},1000);
我真的需要建议。先感谢您。对不起,语法。
最佳答案
我不知道确切的情况或要实现的目标,但我想说您进行AJAX call 的方式非常危险,因为它有可能每秒不停地发出请求,而不管服务器是否有机会做出回应。
我很想一次只提出一个请求,例如:
var saveHere = 'RED';
makeAjaxCall();
function makeAjaxCall() {
var url = 'database.php';
var data = {};
$.get(url, data, function(response_text){
if (response_text != 'RED')
{
saveHere = response_text;
// do whatever else you need...
}
else
{
// make another call...
console.log('calling again...');
makeAjaxCall();
}
}, "text");
}