10

我在某处读到按特定顺序组织 HTML 属性可以提高 HTML 文档的压缩率。(我想我是从谷歌或雅虎推荐中读到的,以获得更快的网站)。如果我没记错的话,建议是将最常见的属性放在首位(例如id,等),然后按字母顺序排列其余的。

我对此有点困惑。例如,如果id将属性放在每个p标签之后,id则将包含唯一值。因此,重复的字符串将仅限于此:(<p id="假设有<p id="1">and <p id="2"/>)。因为id需要唯一的值,我认为这实际上会对压缩产生不利影响。

我错了吗?

如果我需要浏览具有随机排序属性的静态网页,我应该使用什么逻辑来组织属性以实现最大压缩?

注意:我说的是 GZIP 压缩(如果重要的话):http ://www.gzip.org/algorithm.txt

4

1 回答 1

13

你的目标是鼓励重复的内容。所以<p class="foo" id="a">bar</p>...<p class="foo" id="b">bof</p>可能确实比 更容易压缩<p id="a" class="foo">bar</p>...<p id="b" class="foo">bof</p>,并且两者通常都比<p class="foo" id="a">bar</p>...<p id="b" class="foo">bof</p>.

但实际上,差异将是微乎其微的。为了您自己的利益,您最好以最易读的方式编写标记并让 mod_deflate 继续其工作。通过这种微优化,您将不得不走很长的路来保存单个 TCP 数据包,并且在微观层面上事后猜测压缩器通常会产生意想不到的、可能是负面的结果。

对于某些元素,可读性也可能意味着将“常见”属性放在首位,例如<input type>通常是第一个列出的属性;通常你会制定自己的属性顺序样式,如果它是一致的,我想这会在这里和那里为你节省一些字节。我不会选择原始字母作为一致的顺序。它所要做的就是Canonical XML 将产生它。

即使是 google.com 的首页,因其致力于以牺牲可读性、基本验证和各种良好实践为代价来减少字节数而臭名昭著,也不会费心使用一致的属性顺序。

于 2010-10-17T00:50:18.037 回答