由于某种原因,JQuery setTimeout不起作用

时间:2016-11-23 02:28:48

标签: jquery settimeout

我还是JQuery的新手,我使用setTimeout在一段时间后加载插入的数据。我尝试了这个例子以及关于这个问题的答案,但没有任何效果!

我做错了什么?

<script>
    $(document).ready(function(){
        function fetch_data(){

            $.ajax({
                url:"getdata.php",
                success: function(data){
                    $('.result').html(data);
                }

            });
        }
        fetch_data();

        setTimeout(function() {
            fetch_data();
        }, 2000);


    });
</script>

3 个答案:

答案 0 :(得分:0)

看来你的代码是正确的。 我认为问题出在jQuery.ajax调用中,所以我认为它返回“失败”。 请添加“错误”方法并测试如下。

$(document).ready(function(){
    function fetch_data(){
        $.ajax({
            url:"getdata.php",
            success: function(data){
                $('.result').html(data);
            },
            error: function(xhr, textStatus, errorThrown){
                alert('request failed');
            }
        });
    }

    fetch_data();

    setTimeout(function() {
        fetch_data();
    }, 2000);
});

答案 1 :(得分:0)

只需使用setInterval即可。这是您需要的代码。

的JavaScript

$(document).ready(function(){
    function fetch_data(){

        $.ajax({
            url:"getdata.php",
            success: function(data){
                $('.result').html(data);
            }

        });
    }
    fetch_data();

    setInterval(function() {
        fetch_data();
    }, 2000);
});

答案 2 :(得分:0)

你的代码接缝没问题。 但是在你的代码中fetch_data函数会被调用两次。

如果你只需要在2秒后拨打fetch_data。声明后删除fetch_data();调用。

以下示例将清楚地解释它。

&#13;
&#13;
$(document).ready(function(){
  function fetch_data(){
    $('#message').append('<p>called fetch</p>');
  }

  fetch_data();

  setTimeout(function() {
    fetch_data();
  }, 2000);

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div id="message"></div>
&#13;
&#13;
&#13;

如上面的答案所述,可能是ajax请求失败的问题。因此,请确保ajax调用正常。