我想知道在没有页面刷新的情况下自动加载新内容的好方法。例如,之前在Twitter趋势中,当有人发布相关的趋势内容时,它会自动加载新提交的内容而不会加载页面。
我尝试了一些方法,例如(拉方法),在我的javascript中我会设置间隔来加载frm sql查询:var auto_refresh = setInterval(function () {
$('#myLinks').load('http://domain.com/link/loadlatestnews').fadeIn(2000);
}, 400); // refresh every 400 milliseconds
但这是一个好主意,因为它要求客户端每隔400毫秒不断尝试从sql加载。
是否可以使用push方法,如果mysql中有新内容,设置一个事件回调??
答案 0 :(得分:2)
你现在正在做的是一个好主意,但如果功能不是很强大,不要每400 MS调查一次你的服务器。此外,您应该在每个请求上向服务器发送最后结束日期,以便它仅加载在该日期之后出现的内容,并在每次请求时每次返回新的最后日期。通过这种方式,您可以检查服务器是否有新记录,并在其执行此操作时触发该功能。
答案 1 :(得分:0)
您可以通过这种方式自动刷新
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript">
// setTimeout(function(){ window.location.reload(); }, 2000);
$.ajax({
success:function(){
setTimeout(function(){ window.location.reload(); }, 2000)
}
});
</script>
答案 2 :(得分:0)
这取决于。您是否可以访问您的服务器软件。如果你愿意配置它。
您需要的是彗星服务器:http://en.wikipedia.org/wiki/Comet_(programming)
但是,如果您的网站不大您可以使用正在使用的定时轮询技术。只是让间隔更长。 400毫秒是缩短的方法。还尝试按照Shaheer的建议优化您的SQL。