Ответ 1
Ваша цель - поощрять повторный контент. Таким образом, <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>
обычно является первым перечисленным атрибутом; как правило, вы будете разрабатывать свой собственный стиль порядка атрибутов, и если он будет согласован, я полагаю, что вы сохраните несколько байтов здесь и там. Я бы не выбрал необработанный алфавит, как последовательный порядок. Все, что у него получилось, это то, что будет производить канонический XML.
Даже первая страница google.com, печально известная своей приверженностью к сокращению байтов за счет удобочитаемости, базовой проверки и всех видов хорошей практики, не беспокоит использование одного согласованного порядка для атрибутов.