即时资产包装商

时间:2010-07-27 06:17:39

标签: php javascript css

我正在开发一个PHP应用程序,它使用Twig(但这并不重要)作为视图层。此视图层具有自定义扩展,允许我注册远程样式和脚本资产以及样式和脚本内联块。系统会保留这些引用,直到页面完成呈现,将所有样式直接放在标记之前,所有脚本直接放在标记reference之前。

我在一些网站上看过这样的包装商(DataExplorer一个)。以下是vimeo的示例:

<link rel="stylesheet" type="text/css" media="all" href="/assets/css/get/38402/global,lightbox,new_phome,stats_module" />

我正在尝试权衡创建资产包装程序(和最小化程序)的优点和缺点(,这里是你们进入的地方!),它将所有页面的依赖项缓存到两个文件中(分别为js和css)。

需要考虑的一些问题:

  • 如果用户必须下载global.css的部分,这是否有助于提高性能,因为它使用login.css打包在一个页面上,并在没有它的情况下打包在另一个页面上?

  • 是否有必要在用户点击时第一次编译(当然,之后是缓存),或者是否有方法来抓取每个页面并缓存最小化结果作为部署的一部分,以便一个用户永远不会被如此长的页面加载?

距离部署还有一段时间;我只是觉得我会从你的专家那里得到一些想法。

1 个答案:

答案 0 :(得分:1)

理想情况下,您应该将文件打包到尽可能少的文件中,包括库等。并发送压缩压缩。

每个文件都会创建另一个请求,其中包含:

  1. 可能会进行DNS查询,
  2. 发送Cookie(如果未使用静态子域),
  3. 触发身份验证机制,
  4. 检查
  5. .htaccessphp.ini
  6. 和其他人一样多。这种开销通常比打包并在单个压缩文件中发送指数级大。通过压缩,文件大小和缓存不会成为问题。

    您可以在Google Speed(特别是文章)和Yahoo Performance处找到有关此问题和其他可能的速度改进的很多好的指示。