Как стать автором
Обновить

Комментарии 9

Чем только люди не занимаются, лишь бы под натив не писать…
Они уменьшали задержку на сеть, а не оверхед на electron.
В натив будет такая же проблема кеширования данных из сети и магическим образом она не исчезнет. Возможно, ее даже будет сложнее решать.
Последний слак довольно шустрый и теперь понятней почему.

Они уменьшили задержку на сеть, которая возникает только в веб-клиентах. Нативным клиентам нет необходимости грузить скрипты и шаблоны с сервера.

НЛО прилетело и опубликовало эту надпись здесь

Ну так сообщения и чаты кешируются на стороне приложения, а не на стороне Service Worker же.

НЛО прилетело и опубликовало эту надпись здесь

Очевидно, тот факт, что веб-клиенту, который на их сайте, тоже нужен кеш.

Согласен, в консоли видно, что они из API кэшируют только feature флаги и a/b тесты.
Тем не менее, в отличи от натива, они могут делать релизы по «несколько раз в день» и запускать много a/b тестов. Мне кажеться, что такой подход — совмещение лучшего из двух миров: быстрые обновления из мира веба, и быстрый запуск из мира натива.
Слек почти всегда открыт первой вкладкой в браузере. Сделал замер трафика: при холодном старте он скачивает почти 11 мегабайт. Старт с прогретым кешем уже всего лишь 100Кб — и это достойно похвалы.

Но как мне кажется сервис-воркеры не решают всех проблем. Это лишь временный костыль, а основные проблемы сидят намного глубже.

На мой взгляд, основная проблема слека это то, что они все свое веб приложение засовывают в один большой бандл. Да там, есть какое то разбиение на файлы, но эти файлы все равно надо сначала все скачать.

Вот к примеру страница статусов:



Часто кому то приходится менять статус на свой странице? Я вот например вообще им не пользуюсь. Но в бандл мне его все равно засунули, на всякий случай, вдруг понадобится. И так еще примерно 200 таких страниц. Я может быть за всю жизнь не увижу их но мне все равно их передали по сети, в оперативочку засунули, и где то там это лежит и ждет своего часа.

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

Конечно такой подход накладывает некоторые сложности при разработке. С другой стороны — значительно ускорит загрузку клиента, так как на первом экране клиент получит только то что он хочет увидеть.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий