2010-10-17 12 views
10

Leí en alguna parte que la organización de atributos HTML en cierto orden puede mejorar la tasa de compresión del documento HTML. (Creo que leí esto de la recomendación de Google o Yahoo para sitios más rápidos). Si recuerdo correctamente, la recomendación fue poner primero los atributos más comunes (por ejemplo, id, etc.) y luego colocar el resto en orden alfabético.Orden optimizado de atributos HTML para la compresión

Estoy un poco confundido por esto. Por ejemplo, si se pusieran los atributos id justo después de cada etiqueta p, el id contendría valores únicos. Por lo tanto, la cadena duplicada se limitaría a esto: <p id=" (digamos que había <p id="1"> y <p id="2"/>). Debido a que el valor de id debe ser único, veo que esto está causando un efecto adverso en la compresión.

¿Estoy equivocado?

Si tuviera que pasar por una página web estática con atributos ordenados aleatoriamente, ¿qué lógica debería usar para organizar los atributos para lograr la compresión máxima?

NOTA: Estoy hablando de compresión GZIP (si lo que importa): http://www.gzip.org/algorithm.txt

Respuesta

13

Su objetivo sería fomentar el contenido repetido. Por lo tanto, <p class="foo" id="a">bar</p>...<p class="foo" id="b">bof</p> podría ser más fácil de comprimir que <p id="a" class="foo">bar</p>...<p id="b" class="foo">bof</p>, y ambos normalmente se comprimirían más fácilmente que <p class="foo" id="a">bar</p>...<p id="b" class="foo">bof</p>.

Pero realmente, la diferencia va a ser minúscula. Sería mucho mejor escribir tu marcado de la manera más fácil de leer para tu propio beneficio y dejar que mod_deflate continúe con su trabajo. Vas a tener que recorrer un largo camino para salvar incluso un solo paquete TCP con este tipo de micro-optimización, y adivinar el compresor a un nivel micro a menudo puede generar resultados inesperados, posiblemente negativos.

Para algunos elementos, la legibilidad también podría significar poner primero los atributos 'comunes', por ejemplo, <input type> suele ser el primer atributo enumerado; Normalmente, calculará su propio estilo de orden de atributos y, si es consistente, supongo que eso le ahorrará algunos bytes aquí y allá. No elegiría alfabéticamente en bruto como el orden consistente. Todo lo que tiene éxito es que es lo que Canonical XML producirá.

Incluso la página principal de google.com, infame por su dedicación a eliminar bytes a expensas de la legibilidad, la validación básica y todo tipo de buenas prácticas, no se molesta en usar un orden coherente para los atributos.

Cuestiones relacionadas