我有一个html结构,如下所示,也有AJAX,它异步刷新第三个div内的span。我想在div3
中反复检查span的内容,是通过API动态添加的。如果它包含'Hi‘,我想在div3
中显示图像,否则什么也不显示。
<div id="div1">
<div id="div2">
<div id="div3">
<span>Hi</span>
</div>
</div>
</div>
<script type="text/javascript">
$(function(){
(function loopsiloop(){
setTimeout(function(){
var tmp = $('#div3').find("span").val();
if(tmp=='hi'){
document.getElementById("myChatLinkInfo").innerHTML ='<img src="http://slovnikonline.com/img/hi-ohio-logo.jpg">';
}
loopsiloop();
},4000);
})();
loopsiloop();
});
</script>
发布于 2015-03-12 18:43:17
有两种方法可以重复函数:setInterval()
和setTimout( // call fn inside itself )
。
从我的经验来看,第二种方式是最好的,因为如果有东西干扰了setInterval
功能,它就不会正确地调整它的时间--随着时间的推移,随着setInterval
的追赶,你可以得到100%的浏览器使用率(基本上是一个冻结的应用程序)。请参见:
http://www.erichynds.com/blog/a-recursive-settimeout-pattern
您的代码应该如下所示:
$(function(){
(function loopsiloop(){
setTimeout(function(){
//AJAX below
var tmp = $('#checkme').val();
$('#freshme').text(tmp);
//AJAX ABOVE
loopsiloop();
},4000); // <=== 4 sec delay
})();
loopsiloop();
}); //END document.ready
jsFiddle演示
下面是一些关于AJAX基础知识的文章:
https://stackoverflow.com/questions/29013544
复制相似问题