Избегайте полного мерцания страницы, используя jquery ajax
Следующий код вызывает мерцание всей страницы:
$(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. Есть идеи?
1 ответ
В файле включения была пустая функция готовности документа:
$(document).ready(function() {
});
Я удалил это, и все работало, как ожидалось.