Быстро, быстро, очень быстро

Ajax Performance » Circumventing browser connection limits for fun and profit

Суть проблемы: браузер, следующий стандартам, должен одновременно открывать не более двух соединений к одному хосту. В результате, если на странице много картинок, скриптов, стилей и другого прилинкованного контента, то эта страница грузится долго — потому, что браузер одновременно загружает (или даже просто проверяет, не обновилось ли) не более двух линков за раз. Основное время уходит не на передачу данных как таковую, а на ожидание, пока до данной конкретной ссылки/картинки дойдёт очередь.

Решение: если ограничения действуют в пределах одного хоста, то надо просто разложить контент на много хостов. Поскольку хост — это только имя, то контент совершенно не нужно раскладывать физически, достаточно сделать так, чтобы ваш сервер отвечал не только на site.com, но и на images1.site.com, images2.site.com, images3.site.com

И всё! Поскольку все картинки теперь на «разных» хостах, то ограничение перестаёт действовать, и браузер будет обращаться ко всем им одновременно. В статье приведён результат для трёх доменов — полное время загрузки страницы уменьшилось на 40% (при увеличении числа одновременных соединений с 2 до 6).

Бум оптимизировать softkey :)
1 комментарий