我正在尝试使用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>
答案 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