应用于Ajax + Jquery的SetInterval Javascript函数导致页面在重新加载时闪烁?

时间:2011-05-11 21:59:48

标签: jquery setinterval javascript

下面的函数将进行Ajax调用以从mySQL数据库加载数据:

    function displayAll() {                 
    clearInterval ( stopCompoundingInt ); //stop current Interval
        sendAjax('search', 'q', function(responseText){
        $("#txtResp").html(responseText);
            stopCompoundingInt = setInterval ( function(){  // start a new interval with below conditions:
                sendAjax('search', 'q', function(responseText){
                $("#txtResp").html(responseText);
                });
       }, 5000 );
     })
}

以下是应用它的地方:

var eInput = "";
stopCompoundingInt = 0;
$('#searchbar').live('keyup',function() {
    eInput = $(this).val();
    if (eInput.length > 0) {

        clearInterval ( stopCompoundingInt );
        $('#display_all').hide();
        sendAjax('search', eInput, function(responseText){
             $("#txtResp").html(responseText);
              stopCompoundingInt = setInterval ( function(){
                     sendAjax('search', eInput, function(responseText){
                            $("#txtResp").html(responseText);
                     });
              }, 5000 );
       })
    } else {
        displayAll(); // run the above function to show all events
    }
});

如果ID =“searchbar”的文本框中没有文字,该函数应该以5秒的间隔运行

有没有人有任何可以提高此功能性能的建议?

非常感谢,

泰勒

1 个答案:

答案 0 :(得分:1)

您可能需要尝试jQuery .load() function并查看jQuery Timers plugin。我相信重复使用他们的解决方案是非常好的和非常简单的解决方案。