在不同时间加载页面的部分


Parts of page loading at different times

我正在从数据库输出网站上的数据。它工作得很好,除了当页面加载时,它将开始在不同的位置显示,页面的各个部分将在不同的时间加载,使页面在加载之前一直跳转。我希望它能像大多数网站(Facebook、twitter等)一样同时加载,而不是在不同的时间输出部分代码。我使用的是PHP,我不知道是什么原因造成的。有人知道发生了什么,或者对此有任何相同的问题吗?

您可以尝试输出缓冲:

// before any output is generated
ob_start();
// all your code
// end of the script
echo ob_get_clean();

这将捕获生成到缓冲区的所有输出,并在脚本完成时将其转储。但是,这意味着在查询完成之前不会发送任何内容。也许您应该考虑的另一个问题是尽可能优化数据库查询,以减少数据库命中的瓶颈影响。

在对您的问题的评论中,您说您用ob_start()"修复"了这个问题。实际上,缓冲整个页面并不是一个好主意,只是为了让所有内容都同时显示,这会影响你的加载时间,并使你的页面对用户来说显得更慢。研究表明,缓慢的页面加载会让人们远离你的网站。以快速加载页面为目标的另一个原因是,谷歌已经开始在对搜索结果进行排名时使用页面速度作为信号。

像谷歌这样的大型快速网站实际上恰恰相反,它们会清空缓冲区早期的而且经常。

一些快速页面似乎"一次加载所有内容"的原因是有效的页面缓存、负载平衡的地理位置服务器、使用CDN以及其他事情,如通过JavaScript提前刷新文档和加载后的内容。

看看雅虎!有关加快页面速度的更多信息,请参阅性能指南。