这是我的html代码,onclick事件调用:
<input type="button" id="btn" value="Submit" onclick="click_function()"/>
<div id="display"></div>
单击按钮时,如果数据来自服务器,则下面的脚本每隔一分钟调用一次该函数,setinterval将停止调用该函数,直到数据在服务器中创建,函数将调用该函数check()
函数如果数据存在则会显示数据。
<script>
function click_function() {
var ajax_load = "<img id='loading' src='loader.gif' alt='loading...' />";
$("#display").html(ajax_load);
check_interval();
function check_interval() {
var set_inter = setInterval(function(){
check();
}, 60000);
function check(){
if($("#display").val=="") {
$("#display").html(ajax_load);
} else {
$("#display").html(ajax_load).load("get_test.php",{},function(){});
clearInterval(set_inter);
}
}
</script>
但是当我每1分钟运行一次脚本时,该函数将刷新另一个函数,setinterval不起作用,并在第二分钟后停止整个脚本。
我收到错误消息:
显示网页时出错,要继续,重新加载或转到其他页面。
答案 0 :(得分:0)
像这样重写你的代码:
var set_inter = null;
function click_function(){
var ajax_load = "<img id='loading' src='loader.gif' alt='loading...' />";
$("#display").html(ajax_load);
check_interval();
}
function check_interval(){
set_inter = setInterval(function(){
check();
}, 60000);
}
function check(){
if($("#display").val==""){
$("#display").html(ajax_load);
}else{
$("#display").html(ajax_load).load("get_test.php",{},function(){});
clearInterval(set_inter);
}
}
首先是范围问题,你需要使变量set_inter global在其他函数中使用。