Избегайте полного мерцания страницы, используя 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() {

});

Я удалил это, и все работало, как ожидалось.

Другие вопросы по тегам