我们如何实现一个计时器来每隔一分钟发送一个ajax请求来刷新数据(比如来自数据库中其他用户的新条目)。我使用的是jquery中的$.ajax。
我的目的是发送上次更新的时间,这样服务器就不会发送重复的数据。仅从该时间之后创建的行。
我的服务器脚本是php。
发布于 2013-04-08 04:25:35
对于发送日期和时间,您可以使用此函数
var date = new Date();
var date = date.getUTCFullYear() + '-' +
('00' + (date.getUTCMonth()+1)).slice(-2) + '-' +
('00' + (date.getUTCDate()).slice(-2) + ' ' +
('00' + date.getUTCHours()).slice(-2) + ':' +
('00' + date.getUTCMinutes()).slice(-2) + ':' +
('00' + date.getUTCSeconds()).slice(-2);上面会将日期和时间格式化为mysql格式,您可以通过变量将其传递给mysql查询,然后在每分钟之后使用setInterval传递当前时间。
setInterval(function(){
$.ajax({
type:"POST",
data:"Time="+ date,
url:"serverRef",
success: function(data){
// On success
}
});
},60000);注意:您也可以在服务器端使用相同的技术
发布于 2013-04-08 04:31:13
带有jQuery的post的setInterval将会创造奇迹。确保如果你有很多访问者,记得缓存,否则你可能会在没有注意到的情况下收集很多查询,在过去我注意到这可能会让一些主机不堪重负,实际上会让你离线。
var ajax = window.setInterval(function(){
$.post('path/to/my/script.php', function(data){
if(data == "stop")
{
clearInterval(ajax);
return;
}
$('#statistics').html(data);
});
}, 60000);https://stackoverflow.com/questions/15867362
复制相似问题