Col*_*tor 6 webserver facebook google-analytics pagespeed expires-header
我们都知道为静态资源添加一个远期到期日期是提高网站页面加载速度的好方法.所以我们已经确保了我们所有的资源,但是那些非常常见的Facebook JS SDK和Google Analytics都没有这样做,从而降低了整个页面的速度分数.

检查标题显示Facebook做20分钟:Cache-Control public,max-age = 1200 Connection keep-alive Content-Type application/x-javascript; charset = utf-8 Date Tue,23 Sep 2014 04:46:38 GMT Etag"566aa5d57a352e6f298ac52e73344fdc"Expires Tue,23 Sep 2014 05:06:38 GMT
和谷歌分析做2小时:关键价值响应HTTP/1.1 200 OK日期星期二,2014年9月23日04:45:49 GMT到期星期二,2014年9月23日06:45:49 GMT Last-Modified Mon,08 Sep 2014 18:50 :13 GMT X-Content-Type-Options nosniff Content-Type text/javascript ServerGolfe2年龄1390 Cache-Control public,max-age = 7200 Alternate-Protocol 80:quic,p = 0.002 Content-Length 16,062
有没有办法强迫他们延长到期日期?
这些脚本具有短缓存过期标头,因为它们经常更新.当Facebook和Google添加新功能并修复错误时,他们会通过覆盖现有文件(您在问题中链接到的文件)来部署这些更改.这使得这些服务的用户无需执行任何操作即可获得最新功能,但需要花费(如您所指出的)需要短缓存过期标头.
您可以自己托管这些脚本并在其上设置远期过期标头,但这需要您在库更改时手动更新它们.这将非常耗时并且通常是不可能的,因为大多数这些更新都没有放在公共更改日志中.
此外,自己这样做很可能最终会导致性能上的净损失,因为由于这些服务的普及,您将失去网络缓存效果.例如,我想当大多数用户访问您的网站时,他们已经拥有这些脚本的缓存版本(即极有可能在过去两小时的某个时间,访问您网站的人也访问了另一个使用Google Analytics的网站) .另一方面,如果您托管自己的版本,首次访问者将始终必须下载您的版本.
总而言之,我不会试图解决这个"问题".这样做会花费很多时间,可能不会给你想要的效果.
最终实现的解决方案是转向 Facebook 的 rediret API,该 API 不会强制在每次页面加载时加载脚本。实际上 StackOverflow 在这里也是这么做的。在私人/隐身浏览器中启动会话,您就会看到。此链接可能有帮助:https ://developers.facebook.com/docs/php/howto/example_facebook_login
| 归档时间: |
|
| 查看次数: |
7100 次 |
| 最近记录: |