我正在开发一个使用 Twig 的 PHP 应用程序(但这并不重要)作为 View 层。这个 View 层有一个自定义扩展,允许我注册远程样式和脚本 Assets 以及样式和脚本内联 block 。系统会保留这些引用,直到页面完成呈现,将所有样式直接放在标签之前,并将所有脚本直接放在标签 reference 之前。 .
我在一些网站上看到过这样的打包程序(其中之一是 DataExplorer)。这是来自 vimeo 的示例:
<link rel="stylesheet" type="text/css" media="all" href="/assets/css/get/38402/global,lightbox,new_phome,stats_module" />
我正在权衡创建 Assets 打包器(和最小化器)的利弊(这是你们进来的地方!),它将页面的所有依赖项缓存到两个文件中(分别为 js 和 css)。
需要考虑的几个问题:
如果用户必须下载 global.css 的部分,这是否有助于提高性能,因为它与 login.css 打包在一个页面上,而没有它与另一个页面打包在一起?
是否有必要在第一次用户点击时编译它们(当然,之后缓存),或者是否有一种方法来抓取每个页面并缓存最小化的页面结果作为部署的一部分,以便一个用户永远不会遇到如此长的页面加载?
距离部署还有一段时间;我只是想从你们这些专家那里得到一些想法。
最佳答案
理想情况下,您应该将文件打包成尽可能少的文件,包括库等。并将它们放气压缩。
每个文件创建另一个请求,其中:
- 可能会进行 DNS 查询,
- 发送的 Cookie(如果没有使用静态子域),
- 认证机制被触发,
.htaccess
,php.ini
等检查
还有很多其他的。这样做的开销通常比将它们打包并发送到单个压缩文件中要大得多。通过压缩,文件大小和缓存将不再是问题。
您可以在 Google Speed 上找到关于此以及任何 Web 应用程序的其他可能的速度改进的很多很好的建议。 (尤其是文章)和 Yahoo Performance .
关于php - 即时 Assets 打包器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3341153/