Page 193 - Web性能权威指南
P. 193

资源被更新,那么所有以前出现过它的页面都将被宣告无效,而由客户端重新从服
               务器获取。

               最后,虽然 CSS 和 JavaScript 等基于文本的资源很容易直接嵌入页面,也不会带来
               多余的开销,但非文本性资源则必须通过 base64 编码,而这会导致开销明显增大:
               编码后的资源大小比原大小增大 33% !


                          base64 编码使用 64 个 ASCII 符号和空白符将任意字节流编码为 ASCII
                          字符串。编码过程中,base64 会导致被编码的流变成原来的 4/3,即增大
                          33% 的字节开销。

               实践中,常见的一个经验规则是只考虑嵌入 1~2  KB 以下的资源,因为小于这个标
               准的资源经常会导致比它自身更高的 HTTP 开销。然而,如果嵌入的资源频繁变更,
               又会导致宿主文档的无效缓存率升高。嵌入资源也不是完美的方法。如果你的应用
               要使用很小的、个别的文件,在考虑是否嵌入时,可以参照如下建议:

               •   如果文件很小,而且只有个别页面使用,可以考虑嵌入;
               •   如果文件很小,但需要在多个页面中重用,应该考虑集中打包;
               •   如果小文件经常需要更新,就不要嵌入了;
               •   通过减少 HTTP cookie 的大小将协议开销最小化。



































               178   |   第 11 章
   188   189   190   191   192   193   194   195   196   197   198