当用户点击我网站上的按钮时,页面的特定部分将被刷新,但渲染整个部分需要一段时间。是否可以实时显示/输出该部分的部分而不是等待整个部分完成?如果我发送它作为html内容的ajax请求,我该怎么做?感谢
答案 0 :(得分: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请求,只需GET。
答案 1 :(得分:0)
如上所述,缓存您的AJAX请求是一个不错的选择。除此之外,我认为你可以做的只是让你的应用程序看起来更快,就是向用户显示progressbar同时(重新)使用AJAX加载内容。
答案 2 :(得分: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