首页 > 解决方案 > “实时通知”功能

问题描述

我想为我的用户添加“实时通知”功能:当他们收到新消息(通过聊天系统)时,然后在导航栏中的聊天图标上显示通知徽章。

我正在考虑这样做:使用 setInterval 进行 AJAX 调用:(如在此处的另一篇文章中所见)

AJAX 调用:

setInterval('checkUpdates', 2000);
function checkUpdates() {
   $.get('/check_updates.php?timestamp=' . lastTime, function (results){
    // do stuff here
    }
);

PHP代码:

$timestamp = $_REQUEST['timestamp'];
$results = query('SELECT message FROM messages WHERE messageTime > "$timestamp"');
echo fetch($results);

我之前有几个问题:

1)由于我希望更新检查不断运行,并且导航栏始终存在(始终在页面顶部),所以 navbar.php 文件是放置该 AJAX 调用的正确位置吗?

2) 这对网站性能的影响有多大,让 AJAX 调用每 2 秒持续运行一次?

3)有更好的方法吗?像 Facebook 这样的网站是否有一种有效的方法可以在您收到新消息时立即弹出聊天窗口,或者这要归功于它们大量的服务器?

谢谢

标签: phpajaxserver

解决方案


推荐阅读