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


How can I auto update a widget using AJAX?

我不希望有完全可行的例子,我只需要一个开始的方向。

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

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

我只想遵循一个指导方针或方向,我将如何制作实时小部件,自动更新和提取数据/操作等。。会是时间间隔更新吗?

有什么想法吗?

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

上述解决方案非常简单,不会按比例缩放。希望对有所帮助

您可以使用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回调中,以便仅在当前刷新完成时启动计时器。