![Google Page Speed 消息:https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js (1 小时)](https://linux22.com/image/548557/Google%20Page%20Speed%20%E6%B6%88%E6%81%AF%EF%BC%9Ahttps%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fjquery%2F1.6%2Fjquery.min.js%20%EF%BC%881%20%E5%B0%8F%E6%97%B6%EF%BC%89.png)
Google Page Speed 告诉我仅针对此对象利用浏览器缓存:
https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js(1小时)
由于这是从外部服务器提供的,我想我不能告诉浏览器在访问我的网站时缓存它?我正在使用 IIS7,并且已经实施了 7 天的缓存(根据此处列出的配置https://stackoverflow.com/questions/642954/iis7-cache-control),
因此,我应该将文件复制到我的网络服务器,然后在那里引用和缓存它吗?
答案1
将 HTML 中的 URL 从
https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js
到
//ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js
解释:
开头的“而不是
//
”https://
是一种简写形式,所有主流浏览器都支持这种形式,这意味着“与父页面使用的协议相同”。换句话说,如果您自己的网站使用 SSL,那么 jQuery 将通过 SSL 提供。如果没有,那么您的用户将使用纯 HTTP 访问 jQuery,并受益于未加密 HTTP 的更快连接设置。当提供具有完整版本号(
1.6.0
部分)的内容时,Google 的 CDN 将自动使用长缓存标头。您使用的 URL 表示“1.6 系列中的最新版本”,并使用较短的缓存标头,以便 Google 在 jQuery 发布新版本时能够快速更新。
你可以用 Rex Swain 的HTTP 查看器如果你愿意的话。(注意:这个 HTTP 查看器不支持简写//
,但浏览器支持。)
答案2
这里有两个观点:
使用 Google 的 URL,您可以确信客户端已经在其浏览器的缓存中拥有该文件(因为其他网站链接了同一个文件)。
使用您自己的网络服务器,您可以自己调整,但您知道每个新访问者都必须从您那里下载文件。
这确实是一个值得思考的有趣问题,但我个人更喜欢自己提供内容,因为使用了过期标头/压缩/重写规则/等等......