Как инкрементальные обновления влияют на скорость загрузки. Опыт Яндекс.Почты
|
|
Четверг, 06 Ноября 2014 г. 14:18
+ в цитатник
Яндекс.Почта — большое и сложное веб-приложение. Для первоначальной загрузки ей необходимо более 1 МБ статических ресурсов (JS/CSS/Шаблонов). При этом Яндекс.Почта обновляется два раза в неделю, а иногда и чаще.
Но при обновлениях от версии к версии меняется не так много кода — особенно в случае хотфиксов. Это показывают и фризы. Чтобы снизить время загрузки почты при выходе новых версий, мы уже делаем следующее:
Но этого нам недостаточно. Даже при фризе, если в релизе меняется всего один файл, в котором несколько строк, хэш от контента этого файла меняется и кэш инвалидируется, следовательно файл перезакачивается целиком. Чтобы избежать этой проблемы и еще более эффективно грузить новые ресурсы, мы придумали механизм инкрементальных обновлений.
Мы подумали: «А что если хранить где-то старую версию файлов (например, в localStorage), а при выходе новой передавать только diff между ней и той, которая сохранена у пользователя?» В браузере же останется просто наложить патч на клиенте. О том, что из этого получилось и каким выводам мы с
Panya пришли, читайте под катом.
Читать дальше → http://habrahabr.ru/post/242503/
Метки:
Блог компании Яндекс
javascript
Веб-разработка
яндекс.почта
web-разработка
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-