2010-10-17 23 views
10

Tôi đọc ở đâu đó tổ chức các thuộc tính HTML theo một thứ tự nhất định có thể cải thiện tốc độ nén cho tài liệu HTML. (Tôi nghĩ rằng tôi đọc điều này từ Google hoặc Yahoo khuyến nghị cho các trang web nhanh hơn). Nếu tôi nhớ chính xác, đề xuất là đặt các thuộc tính phổ biến nhất trước tiên (ví dụ: id, v.v.) rồi đặt các thuộc tính còn lại theo thứ tự bảng chữ cái.Thứ tự tối ưu hóa các thuộc tính HTML để nén

Tôi hơi bối rối vì điều này. Ví dụ: nếu các thuộc tính id được đặt ngay sau mỗi thẻ p, thì id sẽ chứa các giá trị duy nhất. Do đó, chuỗi trùng lặp sẽ bị giới hạn trong số này: <p id=" (giả sử có <p id="1"><p id="2"/>). Bởi vì giá trị của id cần phải là duy nhất, tôi thấy điều này là thực sự gây ra một tác động bất lợi cho việc nén.

Tôi có sai không?

Nếu tôi cần phải đi qua một trang web tĩnh với các thuộc tính được sắp xếp ngẫu nhiên, tôi nên sử dụng logic nào để tổ chức các thuộc tính để đạt được nén tối đa?

Chú ý: Tôi đang nói GZIP nén (nếu có vấn đề): http://www.gzip.org/algorithm.txt

Trả lời

13

Mục tiêu của bạn sẽ được khuyến khích nội dung lặp đi lặp lại. Vì vậy, <p class="foo" id="a">bar</p>...<p class="foo" id="b">bof</p> thực sự có thể dễ dàng hơn để nén hơn <p id="a" class="foo">bar</p>...<p id="b" class="foo">bof</p> và cả hai thường sẽ nén dễ dàng hơn <p class="foo" id="a">bar</p>...<p id="b" class="foo">bof</p>.

Nhưng thực sự, sự khác biệt sẽ bị trừ đi. Bạn sẽ được tốt hơn nhiều chỉ cần viết đánh dấu của bạn trong thời trang dễ đọc nhất cho lợi ích của riêng bạn và cho phép mod_deflate nhận được trên với công việc của mình. Bạn sẽ phải đi một chặng đường dài để tiết kiệm ngay cả một gói TCP duy nhất với loại tối ưu hóa vi mô này, và việc đoán lần hai máy nén ở mức vi mô thường có thể tạo ra các kết quả bất ngờ, có thể tiêu cực.

Để một số yếu tố dễ đọc cũng có thể có nghĩa là đặt thuộc tính ‘chung’ trước tiên, ví dụ: <input type> thường là thuộc tính được liệt kê đầu tiên; thông thường, bạn sẽ làm việc theo kiểu thứ tự thuộc tính của riêng bạn và nếu nó nhất quán, tôi cho rằng nó sẽ giúp bạn tiết kiệm một vài byte ở đây và ở đó. Tôi sẽ không chọn thứ tự chữ cái nguyên theo thứ tự nhất quán. Tất cả những gì đã đi cho nó là nó là những gì Canonical XML sẽ sản xuất.

Ngay cả trang trước của google.com, khét tiếng vì sự cống hiến của nó để loại bỏ các byte với chi phí dễ đọc, xác thực cơ bản và mọi loại thực hành tốt, không bận tâm sử dụng một thứ tự nhất quán cho các thuộc tính.