Почему Facebook не объединяет свои файлы CSS / JS? - PullRequest
5 голосов
/ 28 сентября 2011

Мне любопытно, почему разработчики Facebook решили не объединять свои скрипты и таблицы стилей в один файл. Вместо этого они загружаются по требованию через их CDN.

Facebook, очевидно, очень сложное приложение, и я могу понять, как такая модульность может упростить поддержку Facebook, но не будут ли применяться обычные рекомендации по оптимизации (особенно учитывая его высокий уровень использования)?

Или тот факт, что они используют CDN, позволяет избежать обычного влияния на производительность большого количества маленьких скриптов / стилей?

Ответы [ 3 ]

5 голосов
/ 28 сентября 2011

Одним словом BigPipe .Они делят страницу на «листовки», каждая из которых обрабатывается отдельно на своих серверах и отправляется в браузер параллельно.Практически все (CSS, JS, изображения, контент) загружаются лениво, поэтому они сводятся в кучу маленьких файлов.

5 голосов
/ 28 сентября 2011

Они могут столкнуться с ситуацией, когда экономия от возможности обслуживать различные комбинации файлов JS в браузере в разное время (для разных страниц или разных конфигураций приложений для разных пользователей) представляет большую экономию, чем уменьшенный HTTP-запрос. накладные расходы по объединению всех файлов в один.

Если в любой момент времени браузер выполняет только небольшой процент от всей базы кода JS, то это будет иметь смысл. Поскольку у них так много разных пользователей и разных частей разных приложений, работающих в разных конфигурациях для этих пользователей, можно утверждать, что это так.

Во-вторых, эти файлы нужно загружать только один раз, тогда браузер не будет запрашивать их снова до тех пор, пока они не изменятся или не истечет срок действия кэша, поэтому только первый визит действительно выигрывает от стиля «все в одном». И да, наличие и продвинутый CDN во многих периферийных точках по всему миру определенно помогает.

0 голосов
/ 28 сентября 2011

Возможно, они думают, что более вероятно, что вы посещаете Facebook чаще, чем очищаете кеш браузера.

...