如何通过频繁的实时更新提高网站效率

How to improve efficiency on a website with frequent live updates

我正在制作一个网站,让用户可以直接从首页制作 post。同样在首页上,我有 posted 问题的实时更新。该实时提要中的每个问题都有自己的小容器,其中包含 post 的标题和一些其他详细信息。当用户单击 post 时,将打开一个 (Bootstrap) 模式。在那里您可以看到 post 的标题、post 详细信息和实时评论提要。首页上的 post 提要和每个 post 的评论提要均每 15 秒更新一次(评论提要在模式打开时以及任何模式打开时开始更新 post 在首页停止更新)。 'live' 的所有功能都在 jQuery/Ajax 期间发挥作用。我注意到,即使在我的本地服务器上,加载也需要一些明显的时间。我的数据库在 MySQL 中,我已经进行了几次(大约 15 次)测试 posts 并向其中一些添加了评论。

post 提要的代码基本上是:

function updatePosts({
$("#postContainer").load('post_pull.php');
}
setInterval('updatePosts()', 15000);

而 php 文件只是 returns div 中的所有 posts,包含带有模态和一些脚本的 posts 的详细信息。

每个 post 的评论提要非常相似,除了它拉取具有打开模式的 'parent ID' 的评论。

所以我的问题是:进行实时更新的最有效方法是什么,因为如果加载时间现在很明显,在本地服务器上并且有少量 posts,它将是在人们不断 posting.

的真实服务器上无法使用

当您需要 updatePosts() 时,告诉服务器您当前显示的帖子的最后 ID,这样服务器就可以只发送您的页面没有的帖子。

updatePosts(lastID);

function updatePosts(lastid) {
 $.get( "post_pull.php?lastid=" + lastid, function() {
   $("#postContainer").prepend(data); // or append    
 });
}

因此服务器将 return 仅发布新帖子,您将它们附加到列表顶部。