如果缓存了JS脚本,那么在不使用它的文件中请求它会有额外的开销吗?

时间:2011-10-17 02:16:40

标签: caching request

基本上我想将所有<link><script>请求保存在一个php文件中,但有些脚本只适用于网站上的一个页面。我不想创建额外的开销来请求页面上没有使用的脚本。

但是,主页上还有额外的脚本。因此对于网站的初次使用者来说,他们通常会通过主页进入。 AFAIK,然后缓存该脚本。

这会抵消我提到的开销问题吗?即如果文件被缓存,在另一页上请求它是否没有明显的开销?

1 个答案:

答案 0 :(得分:1)

是的,它们将被缓存。

但是,仍然会在每个后续页面请求上发送检查新文件的HTTP标头请求。您服务器的响应将是“您已经拥有最新版本”。所以它将使用缓存中的那个。

我发现HTTP请求是网络的最佳杀手 - 特别是对于移动设备,因此至少应该使用Expires标头,这样当您将文件提供给浏览器时,您可以说“*不要再次请求此文件30天“,等等。

最后,您可以在页面加载后“预取”额外的资源,这样它不会影响用户加载时间,但在用户位于主页时仍会缓存。

*作为警告,如果您确实使用Expires标头,则需要通过文件夹路径或查询参数进行版本控制,因为Web浏览器将不再检查新文件。像这样:

<script src="http://yoursite.com/js/compressed_files.js?v=1"></script>