0

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

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

4

2 回答 2

0

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

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

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

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

于 2013-09-29T19:54:53.650 回答
0

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

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

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

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

想要单独缓存标头的原因是什么?如果您的应用程序正在生成标准网页,那么通过 Javascript 单独加载标头会更慢。任何带宽节省都可能微不足道。

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

  • 将您的 Javascript 放在模板底部的结束标记上方。这将允许浏览器首先开始加载页面渲染所需的其他资产。
  • 如果可能的话,通过将容器的大小调整为模板中适当的高度和宽度,为要注入内容的区域做好准备。这将防止页面由于页眉所需的额外空间而“跳跃”。
于 2013-09-29T20:02:46.377 回答