在我的网站上有一个静态标题,其中包括一些图形和导航等。此内容是静态的,不必每次都加载。
有没有办法将其放入 HTML 文件中,将其缓存在客户端浏览器上,然后告诉浏览器将此文件包含在页面的某个位置?
我能想到的唯一可能是将静态 HTML 放入单个 php 文件(在其中设置一些适当的标头以允许缓存)并使用 JavaScript 执行 Ajax 调用以将文件加载到您的站点中。使用 jQuery,您可以使用:
$('#navigation').load('navigation.php');
这将使客户端使用单独的 GET 请求加载导航,如果您设置适当的标头,则可以缓存该请求。
但是,在我看来,这是严重的过载,可能会导致导航在页面的其余部分之后加载一段时间,更不用说与禁用 JavaScript 的用户的兼容性问题了。
我同意 TheWolf 的观点,这也是我要建议的。
[编辑:正如安东尼指出的那样,这将不允许单独缓存标头。]
您可以简单地将 html 放入它自己的 .php 文件中,并在需要时将其包含在服务器端使用:
<?php include 'header.php'; ?>
“header” html 将包含在页面的 html 中,并将由浏览器缓存(假设发送了正确的缓存 headers)。这是在 php.ini 中包含条件内容的最常用方法。
想要单独缓存标头的原因是什么?如果您的应用程序正在生成标准网页,那么通过 Javascript 单独加载标头会更慢。任何带宽节省都可能微不足道。
如果您决定使用 Javascript 动态加载内容,您可以采取以下措施来增强最终用户体验: