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

Javascript 如何使用AJAX每5秒刷新一次iFrame?,javascript,jquery,html,ajax,iframe,Javascript,Jquery,Html,Ajax,Iframe,我正在尝试使用AJAX刷新iFrame,以便页面上的iFrame不会闪烁。下面的代码可以工作,但它占用了大量内存,大约2分钟后就会崩溃页面。我正在努力让它工作,这样它就不会使页面崩溃 我正在使用iFrame,其中有一个表,我希望它每2秒获取一次内容,以便更新它。下面的AJAX代码位于名为table.php的页面中。在我的主页上的iFrame中有一个名为dispatch1.php的页面(table.php)。表id为“thistable” 函数checkRequest(){ var interv

我正在尝试使用AJAX刷新iFrame,以便页面上的iFrame不会闪烁。下面的代码可以工作,但它占用了大量内存,大约2分钟后就会崩溃页面。我正在努力让它工作,这样它就不会使页面崩溃

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


函数checkRequest(){
var interval=setInterval(函数(){
var请求=$.ajax({
url:“table.php”,
类型:“post”,
数据类型:“html”
});
request.done(函数(msg){
$(“#此表”).html(msg);
});
},2000)
}

我认为最好的方法是使用setTimeout,这意味着该函数将在上一次调用完成后5秒再次调用,这不是每5秒刷新一次页面,而是在上一次刷新后5秒刷新一次,因此不会使浏览器崩溃
相反,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);
}

我相信您正在寻找的是
setInterval()
,您可以在
文档中调用setInterval.ready
,或者根据需要单击按钮

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

<script>
    $(function(){

        setInterval(function(){ 
           repeatedAjaxRequest();

         }, 5000);
        });

        function repeatedAjaxRequest(){

        //Your ajax statements goes here

        }
<script>

$(函数(){
setInterval(函数(){
repeatedAjaxRequest();
}, 5000);
});
函数repeatedAjaxRequest(){
//您的ajax语句在这里
}

查看链接了解更多信息

不清楚此代码是iframe还是父窗口的一部分。顺便说一句,您需要在问题中提供更多上下文,例如,如何调用
checkRequest()
方法?顺便说一句,如果您的请求需要2秒以上才能完成,您将面临一些问题,可能是当前正在发生的情况。通常,要刷新iframe,只需更新src属性(可能使用timestamp来避免任何缓存问题),但我想这就是为什么不更新的原因:
我正在尝试使用AJAX刷新iframe,以便页面上的iframe不会闪烁
检查请求
一次又一次被调用……听起来像这样。如果它在2秒钟内被调用,则通过添加新的间隔时间来增加每次请求的数量。将
setInterval
更改为
setTimeout
如何,并在AJAX的成功回调中调用与
setTimeout
相关的函数?这并不能保证延迟,但甚至不会使浏览器崩溃。我已经试过了,到目前为止它还在工作。在图像中,打开Chrome中的“网络”选项卡时显示它仍在以恒定速率传输,以MB或KB为单位递增。但是,这仍然没有导致浏览器内存不足和崩溃,所以这是好的。如果这是最终解决方案,我会让你知道。谢谢你的帮助!
<script>
    $(function(){

        setInterval(function(){ 
           repeatedAjaxRequest();

         }, 5000);
        });

        function repeatedAjaxRequest(){

        //Your ajax statements goes here

        }
<script>