如何使用AJAX自动更新小部件?

时间:2012-07-20 14:08:08

标签: php ajax

我不希望有充分的实例,我只是需要一个开始的方向。

因此,为了解释我想要做什么,我有一个应用程序,用户登录,注销,添加内容,在网站中执行操作等。我想知道是否可以使用PHP和AJAX来制作像这样自动更新的小部件:

  • 有人登录...
  • 有人添加了照片......
  • 等。

我只想要一个指南或方向,我将如何制作自动更新和拉动数据/操作等的实时小部件..是时间间隔更新吗?

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用setTimeout() javascript方法每隔X毫秒触发一次窗口小部件的重新加载。

var delay = 5000; // 5 seconds
setTimeout('refresh();', delay );
function refresh(){
   doAjaxCall(); // ajax call to get new data and update the widget
   setTimeout('refresh();', delay ); // schedule next refresh
}

最好将重新安排(最后一行)放在ajax回调中,以便仅在当前刷新完成时启动计时器。

答案 1 :(得分:1)

首先,您需要存储要在窗口小部件中显示的操作列表,例如,您可以使用(id,created_at,action_description)创建数据库表,并且每当用户执行应显示的操作时小部件(例如上传了一张照片等),在该表中插入一条记录(注意这不是很有效,如果你有很多用户就不能很好地扩展) 其次,在浏览器端,您定期调用一个函数(例如使用setInterval)来查询服务器以获取更新并更新小部件

上述解决方案非常简单,无法扩展。 希望有所帮助