Во-первых, хочу высказать персональную благодарность Виталию Харисову за несколько очень своевременных замечаний относительно производительности CSS-движка в браузерах, которые подвигли меня изучить эту проблему более глубоко и совершить настоящий прорыв в понимании функционирования данной части браузеров.
Во-вторых, нельзя не упомянуть Павла Димитриева и его замечательный перевод классических советов от группы разработчиков Yahoo! (часть 1, http://webo.in/articles/habrahabr/15-yahoo-best-practices/ ), которые послужили отправной точкой в оптимизации скорости загрузки для многих тысяч веб-разработчиков.
Значительный вклад в продвижение идей «ненавязчивого» JavaScript и обратной совместимости в работе веб-сайтов (когда пользователь может взаимодействовать со страницей и с отключенным JavaScript или CSS) был внесен Дмитрием Штефлюком ( http://kpumuk.info/ ), Андреем Миндубаевым ( http://covex.in.nnov.ru/ ), Андреем Суминым ( http://jsx.ru/ ), Павлом Корниловым ( http://lusever.ru/ ), Павлом Довбушом ( http://dpp.su/), Вадимом Макеевым ( http://pepelsbey.net/ ) и Артемием Трегубенко ( http://arty.name/ ). Их идеи легли в основу некоторых частей данной книги.
Также необходимо упомянуть Евгения Степанищева ( http://bolknote.ru/ ), предложившего альтернативу data:URI-подхода для Internet Explorer, что позволило расширить этот метод для всех браузеров и составить реальную конкуренцию CSS Sprites. И Александра Лозовюка ( http://abrdev.com/ ), который смог найти время и дополнить предварительную версию рукописи своими замечаниями по использованию различных инструментов для анализа и автоматизации ускорения загрузки.
Естественно, нельзя обойти вниманием всех моих соратников по российскому крылу Web Standards Group ( http://web-standards.ru/ ). Не опираясь на их мощную профессиональную поддержку, освещать такую сложную и неоднозначную тему, как клиентская оптимизация, было бы весьма непросто.
Кроме этого Антон Лобовкин ( http://anton.lobovkin.ru/ ), Денис Кузнецов ( http://q-zma.com/ ), Евгений Кучерук ( http://kuklaora.blogspot.com/ ), Иван Никитин ( http://ivan-nikitin.spaces.live.com/ ), Алексей Басс ( http://alexey-bass.blogspot.com/ ), Владимир Юнев ( http://blogs.gotdotnet.ru/personal/XaocCPS/ ), Павел Власов ( http://zencd.livejournal.com/ ), Артем Курапов ( http://kurapov.name/ ), Алексей Тен.( http://lynn.ru/ ), Константин Бурнаев ( http://bkonst.livejournal.com/ ), Timur Vafin ( http://timurv.ru/ ), Денис Воробьев ( http://alfa.1nsk.ru/ ), Алексей Хоменко ( http://core.freewheel.ru/ ), Паша Друзьяк ( http://ilive.in.ua/enej/ ), Иван Курносов ( http://www.mzz.ru/ ) и многие-многие другие поделились полезными методиками, примерами конфигурационных файлов и просто ценными советами, за что им также огромное спасибо.
И конечно, обязательно хочу поблагодарить всех пользователей Web Optimizator ( http://webo.in/ ) и читателей блога Клиентская оптимизация ( http://habrahabr.ru/blogs/client_side_optimization/ ). Без их моральной поддержки и веры в благое начинание эта книга никогда не была бы опубликована.
Глава 1. Что такое клиентская оптимизация?
1.1. Цели и задачи оптимизации
Каждая веб-страница состоит из основного HTML-файла и набора внешних ресурсов. Говоря о размере страницы (или сайта), очень часто имеют в виду размер именно первого файла, что, естественно, неверно.