【发布时间】:2013-04-07 20:21:03
【问题描述】:
我们如何实现一个计时器来发送一个 ajax 请求以每分钟刷新一次数据(例如来自其他用户的数据库中的新条目)。我正在使用来自 jquery 的 $.ajax。
我的目的是发送最后一次更新的时间,这样服务器就不会发送重复的数据。只有在那之后创建的行。
我的服务器脚本是 php。
【问题讨论】:
标签: php jquery ajax partial-page-refresh
我们如何实现一个计时器来发送一个 ajax 请求以每分钟刷新一次数据(例如来自其他用户的数据库中的新条目)。我正在使用来自 jquery 的 $.ajax。
我的目的是发送最后一次更新的时间,这样服务器就不会发送重复的数据。只有在那之后创建的行。
我的服务器脚本是 php。
【问题讨论】:
标签: php jquery ajax partial-page-refresh
用于发送日期和时间您可以使用此功能
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);
注意:您也可以在服务器端使用相同的技术
【讨论】:
setInterval 与 jQuery 的 post 会产生奇迹。确保如果您有很多访问者,请记住缓存,否则您可能会在不注意的情况下收集大量查询,在过去我注意到这会压倒一些主机并基本上使您离线。
var ajax = window.setInterval(function(){
$.post('path/to/my/script.php', function(data){
if(data == "stop")
{
clearInterval(ajax);
return;
}
$('#statistics').html(data);
});
}, 60000);
【讨论】: