Comments 20
Безусловно интересный опыт, но есть пара моментов.
У вас в developer tools стоит «disabel cache». А без кеша смотреть на загрузку статики не серьезно.
Так же, с учетом кеша, возникает вопрос, а стоит ли пушать при каждом запросе такое количество статики, если она у пользователя уже есть?
Увеличение передаваемых данных скорее сделает все только хуже.
У вас в developer tools стоит «disabel cache». А без кеша смотреть на загрузку статики не серьезно.
Так же, с учетом кеша, возникает вопрос, а стоит ли пушать при каждом запросе такое количество статики, если она у пользователя уже есть?
Увеличение передаваемых данных скорее сделает все только хуже.
Наверное вы правы. Вот здесь Announcing Support for HTTP/2 Server Push как раз написано что пушить желательно некэшируемый контент, иначе пушинг может давать негативное влияние.
Очевидно что статья лишь пример технологии. Дальше уже бизнс логика — что пушить, когда и при каких условиях.
Например
— если зашли на главную и не видим сессии — однозначно пушить всё
— если зашли на главную и видим что пользователь уже известен и заходил не давно — можно не пушить то что не поменялось
— если зашли на главную и видим что пользователь был до обновления продакшина — пушить то что обновилось или всё, в зависимости от того какие данные в удобном виде доступны
— если зашли не на главную, но в какой-то специализированный раздел где некоторые данные критичны — пушить
— если зашли на страницу где есть динамически обновляемые данные, например графики — пушить графики
И так далее и тому подобное.
Например
— если зашли на главную и не видим сессии — однозначно пушить всё
— если зашли на главную и видим что пользователь уже известен и заходил не давно — можно не пушить то что не поменялось
— если зашли на главную и видим что пользователь был до обновления продакшина — пушить то что обновилось или всё, в зависимости от того какие данные в удобном виде доступны
— если зашли не на главную, но в какой-то специализированный раздел где некоторые данные критичны — пушить
— если зашли на страницу где есть динамически обновляемые данные, например графики — пушить графики
И так далее и тому подобное.
Да, эффект в основном должен создаваться при первом посещении, нарулить это можно тучей способов — отправлять/резать заголовки, кому как нравится.
Есть другой веб-сервер, тоже поддерживающий http/2, называется H2O. Там вообще из коробки функционал проверки наличия файлов в кэше браузера и на основе этого происходит пуш.
Есть другой веб-сервер, тоже поддерживающий http/2, называется H2O. Там вообще из коробки функционал проверки наличия файлов в кэше браузера и на основе этого происходит пуш.
Очень интересно: в nginx (который с 1.9.5 с http2 дружит, хотя модуль и экспериментальный) подобные push-ы, вроде как, можно сотворить путем отправки заголовков
Вы же используете nghttp2 — вот в чем разница, nginx или nghttp2, если больше ничего на nghttp2 вы как бы и не настроили?
add_header 'Link' '</asset/to/push.js>; rel=preload; as=script';
Вы же используете nghttp2 — вот в чем разница, nginx или nghttp2, если больше ничего на nghttp2 вы как бы и не настроили?
Да, nginx дружит, но как автор и написал, не полностью.
Вот ананс 1.9.5 и там четко сказано:
Воз и ныне там вроде как.
Вот ананс 1.9.5 и там четко сказано:
HTTP/2’s ‘Server Push’ feature is not supported in this release.
Воз и ныне там вроде как.
для этого же есть простой prefetch в html
А для чего же? В чем разница?
Ну очевидно же что ПРЕДзагрузка, начинается «перед», а не «после», на то он и префетч. Это даже из названий понятно. Он начинает тянуть эти файлы, до рендеринга страницы, если еще и в паре с http/2.0, то не нужны самые затратные дополнтельные коннекты — практически тоже самое как пуш, но намного проще, это просто html! Да, будут дополнительные запросы, но зато это работает с любыми другими хостами, а пушить можно только те файлы что лежат на этом же сервере, что невозможно в крупном проекте.
P.S. 14 линков в любом случае рекомендуется собрать в 2.
P.S. 14 линков в любом случае рекомендуется собрать в 2.
Собственно даже в приведенном здесь примере видим серьезный разрыв до начала загрузки шрифтов (зачем-то аж целых 4!) с fonts.gstatic.com и как результат — они и тормозят Document Ready и далеко не на 0,3 секунды о которых написана данная статья, а их можно просто и изящно предзагрузить. Попробуйте — результат приятно удивит.
Пуш в данном случае — из пушки по воробьям.
Пуш в данном случае — из пушки по воробьям.
Sign up to leave a comment.
Реализуем http/2 server push с помощью nghttp2