如何每5秒用AJAX刷新一次iFrame?

时间:2015-05-09 17:37:51

标签: javascript jquery html ajax iframe

我正在尝试使用AJAX刷新iFrame,因此我页面上的iFrame不会闪烁。下面的代码可以工作,但它是一个主要的内存耗尽,大约2分钟后它崩溃了。我试图让它工作,所以它不会崩溃页面。

我正在使用iFrame,其中有一个表格,我希望它每2秒获取一次内容,以便更新。下面的AJAX代码位于名为table.php的页面中。我在我的主页上的一个名为dispatch1.php的iFrame中有这个页面(table.php)。表id是“thistable”。

<script>
    function checkRequest(){
      var interval = setInterval(function(){
      var request = $.ajax({
        url: "table.php",
        type: "post",
        datatype: "html"
      });
      request.done(function(msg){
        $("#thistable").html(msg);
      });
      },2000)
     }
    </script>

2 个答案:

答案 0 :(得分:0)

我认为最好的方法是使用setTimeout,这意味着在上一次调用完成后五秒钟再次调用该函数,这不会每隔五秒刷新页面,而是在上一次刷新后五秒钟所以它不应该崩溃浏览器。
相反,setInterval将每隔五秒调用一次该函数,而不管前一次调用是否已完成,所以这可能是问题所在。

function checkRequest() {
    var interval = setTimeout(function () {
        $.ajax({
            url: "table.php",
            type: "post",
            datatype: "html"
        })
            .done(function (msg) {
            $("#thistable").html(msg);
        })
            .always(function () {
            checkRequest();
        });
    }, 5000);
}

答案 1 :(得分:0)

我相信您要找的是setInterval(),您可以在document.ready上调用setinterval,也可以根据需要点击一下按钮。

这里,setInerval将每5秒运行一次脚本

<script>
    $(function(){

        setInterval(function(){ 
           repeatedAjaxRequest();

         }, 5000);
        });

        function repeatedAjaxRequest(){

        //Your ajax statements goes here

        }
<script>

查看相关链接以获取更多信息Difference between setInterval and setTimeout