2011-10-17 11 views
1

基本上我想保留所有<link><script>请求在一个php文件,但一些脚本只适用于网站上的一个页面。我不想创建额外的开销,请求不在页面上使用的脚本。如果一个JS脚本被缓存了,那么在请求一个不使用它的文件时会有额外的开销吗?

但是,额外的脚本都在主页上。所以对于网站的首次访问者来说,他们通常会浏览主页。 AFAIK,然后脚本被缓存。

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

+0

你会得到一些很好的答案,但据我所知,即使你的脚本不缓存这是很好的坚持让所有的脚本/链接在同一个地方的缘故一致性除非它们很大。 – 2011-10-17 02:21:03

+0

大多数浏览器仍然会再次请求页面/脚本,如果服务器回复'304 not modified',他们只会使用缓存副本。 –

回答

1

是的,它们将被缓存。

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

我发现HTTP请求是网络的绝佳时间杀手 - 尤其是移动设备,所以至少应该使用Expires标头,这样当您将文件提供给浏览器时,您可以说“* Don' t再次请求这个文件30天“等等。

最后,你可以在页面加载后”预取“额外的资源,这样它不会影响用户加载时间,但仍然缓存的东西,而用户在你家页。

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

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

相关问题