以下代码导致整个页面闪烁:
$(document).ready (function () {
console.log("whole page dissapears here");
$( "#progressbar" ).progressbar({value: 0});
queryTimer = setInterval(heavyFlicker(), 500);
});
function heavyFlicker () {
clearInterval(queryTimer);
if (acc < 10) {
var searchURL = window.location.protocol + '//' + window.location.host + '/index.php/searchPart?processName=' +
processName + '&searchField=' + searchField + '&searchValue=' + searchValue + '&searchPos=' + searchPos;
console.log('no ajax, no flickering:' + acc);
$.ajax({
url: searchURL,
dataType : "json",
async: true,
success: function (searchResults) {
console.log("success");
acc++;
queryTimer = setInterval(heavyFlicker(), 500);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("error");
acc = 11;
}
});
} else {
console.log("whole page reappears here");
}
}
我认为闪烁的发生是因为我正在动态修改页面(向表中添加行),但后来我发现仅仅调用$.ajax()
. 如果我将其注释掉,则没有闪烁。
在 Safari 和 Chrome、Windows 和 Mac 上都试过了。有任何想法吗?