【发布时间】:2015-12-09 13:28:24
【问题描述】:
我正在制作一个网站,让用户可以直接从首页发帖。同样在首页上,我对发布的问题进行了实时更新。该实时提要中的每个问题都有自己的小容器,其中包含帖子的标题和其他一些详细信息。当用户点击帖子时,(引导)模式打开。在那里你可以看到帖子的标题、帖子的详细信息和实时评论提要。首页的帖子提要和每个帖子的评论提要每 15 秒更新一次(评论提要在其模式打开时开始更新,当任何模式打开时,首页上的帖子提要停止更新)。所有“实时”功能都通过 jQuery/Ajax 工作。我注意到的是,即使在我的本地服务器上,这也需要一些明显的时间来加载。我的数据库在 MySQL 中,我做了几个(大约 15 个)测试帖子,并在其中添加了 cmets。
post feed 的代码基本上是:
function updatePosts({
$("#postContainer").load('post_pull.php');
}
setInterval('updatePosts()', 15000);
而 php 文件只返回 div 中的所有帖子,以及带有模式和一些脚本的帖子的详细信息。
每个帖子的评论提要都非常相似,只是它会拉取具有打开模式的“父 ID”的 cmets。
所以我的问题是:进行实时更新的最有效方式是什么,因为如果现在加载时间很明显,在本地服务器上并且有少量帖子,那么它在有人的真实服务器上将无法使用不断发帖。
【问题讨论】:
-
noticeable time to load有多长?它有多个方面...服务器处理时间、传输时间和渲染时间 -
如何区分不同的方面?加载时间约为 2 秒在首页提要
-
是在初始页面加载之后吗? 2 秒对于大多数 ajax 来说是很长的时间
-
我在 document.ready() 上运行 updatePosts() 函数,当页面准备好和加载内容时,页面会打印一条控制台消息。在这 2 条消息之间,间隔不到 2 秒。
-
检查开发工具网络中的实际请求。如果请求实际上花费了那么长时间,服务器可能会效率低下
标签: php jquery ajax optimization live