次のコードでは、ページ全体がちらつきます。
$(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 の両方で試しました。何か案は?