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

2

包含文件中有一个空文档准备功能:

$(document).ready(function() {

});

我删除了这个,一切都按预期工作。

于 2014-08-29T16:38:35.633 回答