0

次のコードでは、ページ全体がちらつきます。

$(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 の両方で試しました。何か案は?

4

1 に答える 1