当用户单击我网站上的按钮时,页面的特定部分将被刷新,但渲染整个部分需要一段时间。是否可以实时显示/输出该部分的部分,而不是等待整个部分完成?我如何做到这一点,如果即时通讯发送它作为ajax请求的HTML内容?谢谢输出缓冲和AJAX
0
A
回答
0
我会建议在您的AJAX调用中设置cache: true
(如果使用jQuery),无论哪种方式,您都需要设置HTTP响应标头。 Here are some examples.通过设置cache-control
标题和expires
等,您的AJAX请求 - 如果不改变 - 将从缓存加载。这将大大加快速度。
一个简单的例子:
if (!headers_sent()) {
// seconds, minutes, hours, days
$expires = 60*60*24*14;
header('Pragma: public');
header('Cache-Control: maxage=' . $expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');
}
注:这不会与POST请求的工作,只得到。
0
如上所述,缓存您的AJAX请求是一个不错的选择。除此之外,我认为你可以让你的应用程序看起来更快,就是向用户展示一个progressbar,同时(重新)用AJAX加载内容。
0
您可以实现Pagelets技术。从本质上讲,你可以在某种程度上这工作,象下面这样:
index.html
Ajax -> load content from PHP script which outputs the navigation bar
Ajax -> load content from PHP script which outputs the body
而且有几个不同的Ajax调用加载你的网站的各个不同部分。但是,这具有增加用户浏览器所需的HTTP请求数量的缺点。
这是假设虽然不同的部分可以从页面的其余部分分开生成。如果您的所有内容都需要同时生成,那么此技术将无法使用。
这是一个良好的阅读的(Facebook的项目命名为“BigPipe”):http://www.facebook.com/note.php?note_id=389414033919
相关问题
- 1. PHP输出缓冲
- 2. 输出缓冲区
- 3. Perl缓冲输出
- 4. 缓冲输出流
- 5. libdtrace缓冲输出
- 6. 来自PHP和输出缓冲的JavaScript(带有Ajax)
- 7. PHP输出缓冲循环和jQuery的Ajax
- 8. 如何关闭输入/输出缓冲区中的输入/输出缓冲区
- 9. 输出缓冲和FirePHP错误
- 10. 防止用PHP和Apache输出缓冲
- 11. 我不明白缓冲输出和cout
- 12. subprocess.Popen和缓冲过程输出
- 13. PHP输出缓冲和头部位置
- 14. 如何缓冲和延迟printf()输出?
- 15. PHP的缓冲输出,CSS和邮件
- 16. 输出流缓冲输出流附加
- 17. 输出缓冲还是输出数据
- 18. 包含输出缓冲区?
- 19. PHP输出缓冲变量
- 20. javascript输出缓冲区
- 21. 停止PHP输出缓冲
- 22. PHP输出缓冲检查?
- 23. 输出缓冲问题 - PHP
- 24. PHP输出缓冲堆叠
- 25. 什么是输出缓冲?
- 26. 无缓冲Bash输出
- 27. PHP:结束输出缓冲
- 28. 在wordpress中输出缓冲
- 29. fwrite是否缓冲输出?
- 30. 输出一个缓冲流
我能赶上在用户的浏览器某些HTML内容?我将如何与httpd.conf文件做到这一点?此外,我的内容是动态的,所以我不知道缓存是否合适。 – Ben
是的,你可以。你有权修改.htaccess文件吗?我会说改变这些设置_there_而不是直接修改Apache配置。无论哪种方式,请查看我在答案中的链接(它说“这是一些例子”)。 –