我创建了一个加载在电视上的仪表板网页。此页面希望每秒刷新一次。
我尝试的第一种方法很简单,并且尊重标准:
<meta http-equiv="refresh" content="1">
这会在Mac / Chrome和iOS / Safari中产生令人讨厌的闪烁效果,这是不可接受的。
下一个版本效果很好......内容加载并显示没有明显的中断:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script>
setTimeout(function() {
$.ajax({
url: "",
context: document.body,
success: function(s,x){
$(this).html(s);
}
});
}, 2000);
</script>
这很有效......内容加载并显示没有明显的中断。但是,这会在几分钟后崩溃任何浏览器(IE,Chrome,Safari,Mobile Safari)。
有没有办法解决这个问题,不需要我维护两个单独的页面,重新加载部分和内部数据部分?
答案 0 :(得分:2)
使用timeout
创建&#34;轮询&#34;效果..现在你只需每隔2
秒触发一次请求,无论等待响应。理想情况下,你可以使用网络套接字,但现在:
function makeAjax() {
$.ajax({
url: "",
context: document.body,
success: function(s,x){
$(this).html(s);
setTimeout(makeAjax, 2000);
}
});
}
makeAjax();