PHP:缓存静态导航

时间:2013-09-29 19:46:37

标签: php html caching

在我的网站上有一个静态标题,其中包含一些图形&导航等。此内容是静态的,不必每次都加载。

有没有办法将它放在HTML文件中,将其缓存在客户端浏览器上,然后告诉浏览器将此文件包含在页面的某个位置?

2 个答案:

答案 0 :(得分:0)

我能想到的唯一可能性是将静态HTML放入一个php文件中(在其中设置一些适当的标题以允许缓存)并使用JavaScript执行Ajax调用以将文件加载到您的站点中。使用jQuery,您可以使用:

$('#navigation').load('navigation.php');

这将使客户端使用单独的GET请求加载导航,如果您设置了适当的标头,则可以缓存该请求。

但是,我认为这是严重超载,并且可能导致导航在页面其余部分之后加载一段时间,更不用说禁用JavaScript的用户的兼容性问题了。

答案 1 :(得分:0)

我同意TheWolf,这也是我的建议。

[编辑:正如安东尼指出的那样,这将不允许单独缓存标题。] 您只需将html放入其自己的.php文件中,并在需要时使用以下内容将其包含在服务器端:

<?php include 'header.php'; ?>

“header”html将包含在页面的html中,并将由浏览器缓存(假设发送了正确的缓存头)。这是在php中包含条件内容的最常用方法。

想要单独缓存标头的原因是什么?如果您的应用程序正在生成标准网页,则通过Javascript单独加载标题将会变慢。任何带宽节省都可以忽略不计。

如果您决定使用Javascript动态加载内容,您可以采取以下措施来增强最终用户体验:

  • 将Javascript放在模板底部的结尾标记上方。这将允许浏览器开始首先加载页面呈现所需的其他资产。
  • 如果可能,请通过将容器的大小调整到模板中适当的高度和宽度来填充要注入内容的区域。这将防止页面由于标题所需的额外空间而“跳跃”。