Ben*_*min 6 html performance cdn minify
我想开始使用缩小工具,如Minify,Uglify或Closure来加速我的页面加载.
我的项目依赖于几个庞大的库(jQuery,Bootstrap,...).
我正在考虑两种选择:
.css
一个.js
文件这看起来像这样:
<script src="(my cdn)/myproject.min.js"></script>
<script src="(official cdn)/jquery.min.js"></script>
<script src="(official cdn)/jquery-ui.min.js"></script>
<script src="(official cdn)/bootstrap.min.js"></script>
<link rel="stylesheet" href="(official cdn)/bootstrap.min.css"></link>
<link rel="stylesheet" href="(my cdn)/myproject.min.css"></link>
Run Code Online (Sandbox Code Playgroud)
优点:
缺点:
304 Not Modified
),这将增加页面加载时间.这看起来像这样:
<script src="(my cdn)/myproject-and-libraries.min.js"></script>
<link rel="stylesheet" href="(my cdn)/myproject-and-libraries.min.css"></link>
Run Code Online (Sandbox Code Playgroud)
优点:
缺点:
在任何一种情况下,我都会在AWS CloudFront上从我自己的CDN提供静态文件(只有我自己编译的文件),因此问题不在于是否使用CDN,或者哪个更好.
真正的问题是:用自己的方式打包第三方库?
这取决于。
您应该尝试将所有内容打包在一起,测量文件大小,并查看与单独的库文件相比节省了多少空间。您至少可以将节省的费用与其他因素进行比较。
如何平衡 HTTP 请求与总字节数很大程度上取决于您。如果您的许多用户使用移动连接,则额外的 HTTP 请求可能更值得关注,因为移动连接上往往会出现额外的延迟。
我认为在现代浏览器中的这两个选项下,HTTP 请求将并行发出(即使旧浏览器也会在每个域中同时发出两个 HTTP 请求)。不确定移动浏览器。
很难判断有多少用户在第一次访问您的网站时可能已经缓存了库 CDN 版本。我想我记得读过一些内容,表明用户数量比您想象的要少(可能是来自雅虎的一些数据,其中大约 25% 的用户缓存了这些数据),但我找不到参考资料。
值得考虑的是您期望各种文件更改的频率。如果您每周或每两周更新一次自己的 JavaScript,但将您的库和插件保持在同一版本数月/数年,那么很值得将这些文件分开,以便返回的用户不必重新下载一个大文件打包文件只是因为你改变了自己的 JavaScript 的一行。
不过说实话,如果您已经通过 CloudFront 进行压缩、gzip 压缩和服务,那么当人们从您那里下载文件时,无论如何它们都会很快下载下来。在每个用户第一次空缓存访问您的网站后,您的文件也将被缓存。总的来说,我认为您不会发现这些选项之间有很大差异。
第三方 CDN 的一个明显缺点是,如果出现问题,您根本没有能力修复它们。
归档时间: |
|
查看次数: |
1768 次 |
最近记录: |