Ładowanie Ładowanie

News: > HTML Minifier: co można zrobić z "przerośniętym" kodem HTML?

strony: 1 | 2 następna »
wydrukuj: print publikuj: wykop dodaj do flakera Dodaj jako nius na OSnews.pl! delicious

HTML Minifier: co można zrobić z "przerośniętym" kodem HTML?

2010-03-10 14:13:00 | Adam Golański
HTML Minifier: co można zrobić z

Osoby zainteresowane zminimalizowaniem HTML-owych plików w swojej witrynie mogą zerknąć na nowe narzędzie hakera używającego nicka Kangax. HTML Minifier to webowa aplikacja, która powstała na bazie parsera HTML stworzonoego przez Johna Resiga i pozwala na znaczne skompresowanie kodu poprzez wycięcie z niego zbędnych elementów.

HTML Minifier ma być docelowo praktyczną realizacją manifestu, który Kangax opublikował na swoim blogu pod koniec zeszłego roku. Uznał wówczas, że stan narzędzi do minimalizacji kodu HTML jest raczej marny – sporo można znaleźć oprogramowania do kompresji kodu JavaScriptu i CSS, ale dla HTML nie ma niczego dobrego, a to co jest dostępne, nie działa zbyt sensownie, zamieniając np. znaczniki <strong> w <b> – mimo że nie są one wymienne.

Przyczyną niewielkiego zaangażowania deweloperów w kwestię minimalizacji HTML jest zwykle niewielka opłacalność takich działań – przynajmniej w porównaniu do tego, co osiąga się dla JS i CSS. „Minimalizacja taka musi być realizowana na żądanie i niesie ze sobą pewien narzut” – pisze Kangax. Jedynie wówczas, gdy narzut jest mniejszy niż różnica w rozmiarach dokumentu oryginalnego i zminimalizowanego, praktyka ta ma sens.

Mimo to haker zdecydował się rozpocząć testy napisanego w JavaScripcie systemu minimalizacji kodu HTML, który miałby wbudowany mechanizm typu lint – znane z uniksów narzędzie do analizowania kodu pod kątem podejrzanych instrukcji czy najczęściej popełnianych prostych błędów wynikających z przeoczeń.

Narzędzie zbudowane jest na bazie parsera HTML-u napisanego przez Johna Resiga. Parser ten radzi sobie z całkiem złożonymi dokumentami, ale niektóre kwestie mu umykają – np. prologi z deklaracjami typu dokumentu, czy atrybuty, których wartości zawierają w swoich nazwach znak dywizu. Pojawiają się też problemy z obsługą komentarzy i sekcji CDATA. Wszystkie te usterki zostały usunięte w HTML Minifierze.

Nad parserem znajduje się niewielki (mający raptem 250 linii) skrypt, który na wejściu przyjmuje kod HTML i obiekt konfiguracyjny. Kodem tym „karmi” parser i na wyjściu generuje zminimalizowany kod zgodnie z zadanymi opcjami. Eliminowane są m.in. komentarze, zbędne spacje czy atrybuty boole'owskie. Jednak to nie one przyczyniają się w największym stopniu do nadmiernych rozmiarów dokumentów HTML.

Najnowsze wiadomości

reklama

strony: 1 | 2 następna »
wydrukuj: print publikuj: wykop dodaj do flakera Dodaj jako nius na OSnews.pl! delicious

Czytaj webhosting.pl:

Dyskusja

dodaj komentarz
0 + -
comnt #01 Peter Riley 2010-03-10 18:23:49
Peter Riley Ciekawe jaka będzie różnica w objętości plików przy uwzględnieniu kompresji gzip. Szkoda zachodu.
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.2 Safari/533.2
0 + -
comnt #02 eimi® 2010-03-10 19:10:35
eimi @Peter: w wypadku specyfikacji ECMAscriptu, dla gzipowanych wersji oszczędność około 16 KB.

A z samym gzipem wygląda na to, że też nie jest za różowo:

http://www.stevesouders.com/blog/2009/11/11/whos-not-getting-gzip/
------------------
Browser: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100213 Firefox/3.6
0 + -
comnt #03 BOM 2010-03-10 23:53:48
BOM Dla mnie to nie ma sensu. Dlatego, że przy małych serwisach, nie ma znaczenia, czy dokument ma 100kb czy 70kb. Z kolei przy dużych rozbudowanych serwisach, jeden obrazek JPG lub jedna animacja Flash, lub jeden dodatkowy skrypt JS, będzie często ważył więcej, niż cała ta optymalizacja HTML.
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6
0 + -
comnt #04 Centas.org® 2010-03-11 00:05:57
Iwoldan Zysk na kompresji kodu HTML wydaje się mało opłacalny. Niewspółmiernie bardziej stronę obciążają obrazki. A jednak optymalizacja kodu ma sens, bo zachęca do tworzenia strony w oparciu o nowoczesne standardy. Tak, strona wykorzystująca oszczędniejszy kod najczęściej jest też bardziej zgodna ze standardami. To nie jest przypadek. Standardy tworzono aby wyeliminować najważniejsze bolączki Internetu. Na przykład formatowanie za pomocą zewnętrznych arkuszy stylów pozwoliło na zrezygnowanie  z nadmiernego  stosowania tabel.   Poprawia to czytelnośc kodu i dostępność strony dla osób słabo widzących korzystających z czytników. Sprzyja również lepszemu pozycjonowaniu strony.
------------------
www.centas.org

Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)
0 + -
comnt #05 jan 2010-05-13 22:53:47
jan Ciekawy temat
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19
0 + -
comnt #06 nerkyl 2010-06-11 20:16:06
nerkyl



Normal

0

21













MicrosoftInternetExplorer4











/* Style Definitions */

table.MsoNormalTable

{mso-style-name:Standardowy;

mso-tstyle-rowband-size:0;

mso-tstyle-colband-size:0;

mso-style-noshow:yes;

mso-style-parent:"";

mso-padding-alt:0cm 5.4pt 0cm 5.4pt;

mso-para-margin:0cm;

mso-para-margin-bottom:.0001pt;

mso-pagination:widow-orphan;

font-size:10.0pt;

font-family:"Times New Roman";}





Ciekawy temat
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.19) Gecko/2010031422 AskTbUT2V5/3.8.0.12304 Firefox/3.0.19
0 + -
comnt #07 tert 2010-07-09 21:21:01
tert Ciekawy temat
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.19) Gecko/2010031422 AskTbUT2V5/3.8.0.12304 Firefox/3.0.19

Komentarze

  • Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
  • Jeśli masz problemy z odczytaniem słów, zmień zdjęcie.
  • Używamy tego zabezpieczenia, ponieważ dzięki niemu rozwija się projekt reCAPTCHA. Sugerujemy jednak, by zarejestrować się w serwisie i w ten sposób ominąć konieczność ciągłego odczytywania wyrazów.
  • W treści komentarza można używać języka formatowania BBcode.