The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Firefox и Chrome провели работу по увеличению скорости повторной загрузки страниц

27.01.2017 23:49

Компания Facebook подвела итоги инициативы по увеличению эффективности локального кэширования на стороне web-браузеров, проведённой совместно с разработчиками Chrome и Firefox. Инженеры Facebook обратили внимание на то, что ощутимая часть запросов связана с получением сведений об актуальности прокэшированного статического контента (в основном изображения, CSS- и JavaScript-файлы), в процессе повторной загрузки страниц или запроса идентичных ресурсов при открытии новой страницы. Внесённые разработчиками Firefox и Chrome изменения позволили на 60% сократить число запросов статических ресурсов, что привело не только к снижению нагрузки на серверную инфраструктуру, но и значительно увеличило скорость загрузки страниц.

В частности, за счёт сокращения отправки лишних сетевых запросов для проверки актуальности прокэшированных браузером ресурсов, скорость повторной загрузки страниц Facebook возросла на 28%. При этом изменения не специфичны для Facebook и повышают эффективность работы с любыми другими сайтами. Например, разработчики Chrome провели более глобальное измерение, в котором выяснили, что после внесения оптимизаций время загрузки всех сайтов, на которых 90% ресурсов загружаются повторно, сократилось на 1.6 сек. (тестирование проводилось при использовании 3G-соединения).

Инициатива по повышению эффективности кэширования была предпринята после изучения в Facebook особенностей повторного запроса ресурсов в условиях изначально заданного большого времени жизни в кэше. Для максимального использования кэширования на стороне браузера в Facebook URL каждого статического ресурса включает уникальный хэш от его содержимого, что позволяет выставлять изначально большое время жизни записей (заголовок "cache-control: max-age=" установлен в 365 дней, не заботясь о вопросе сброса кэша после изменения файла (если файл изменится, изменится хэш и URL, что приведёт к загрузке файла независимо от времени жизни элемента в кэше).

Проблема оказалась в том, что несмотря на большое время жизни, браузеры продолжают достаточно интенсивно отправлять проверочные запросы, оценивая время модификации файла. В частности, при перезагрузке пользователем ранее открытой страницы перепроверка актуальности всех ресурсов выполняется независимо от того истекло время жизни записи в браузерном кэше или нет. В результате, несмотря на выставление времени жизни статических ресурсов в 365 дней, в 2014 году около 60% всех запросов к Facebook приводило к выводу ответа с кодом 304 (файл не изменился). В обращениях пользователей Chrome подобных проверочных запросов было 63%, Firefox - 13%, IE - 14%, Safari - 22%.

Как видно из статистики, основной вклад во внеочередные проверки вносил браузер Chrome. Анализ кода показал, что Chrome всегда отправляет проверочный запрос, если обращение произведено с использованием метода POST. Разработчики аргументировали такое условие тем, что часто POST-запрос приводит к изменению страницы и необходимо всегда обеспечить показ самого актуального варианта. С другой стороны, операция авторизации в Facebook также проводится с отправкой данных методов POST, что приводило к перепроверке всех ресурсов при каждом входе пользователя в Facebook, игнорируя состояние кэша. Исправление данной особенности привело к тому, что число проверочных запросов от Chrome сократилось с 63% до 24%.

Продолжив анализ работы Chrome стало ясно, что Chrome считает перезагрузкой страницы ситуацию повторного открытия через элементы навигации (например, когда пользователь возвращается к прошлой странице через кнопку назад), что другие браузеры не трактуют как перезагрузка. Исправление данной особенности существенно не повлияло на статистику и стало ясно, что причина повышенного числа проверочных запросов в нажатии пользователями кнопки "перезагрузить страницу". В ходе длительных дебатов был достигнут компромисс - не проводить повторную проверку для уже давно не изменявшихся ресурсов, но сохранить старое поведение и каждый раз проверять ресурсы, которые были изменены недавно. Изменения были приняты в Chrome 54 и привели к существенному ускорению повторной загрузки.

Что касается Firefox, то его разработчики не согласились менять давно устоявшееся поведение кнопки "перезагрузить страницу", но реализовали заголовок "cache-control: immutable", предоставив администраторам сайтов возможность управлять поведением при перезагрузке. При наличии данного заголовка браузер считает, что текущий ресурс никогда не меняется и поэтому браузер не выполняет его повторные проверки. Изменение было принято в Firefox 49. Кроме того, для увеличения скорости загрузки страниц в Firefox 44 был реализован метод сжатия Brotli, который по сравнению с gzip позволяет сократить размер отдаваемого содержимого на 20%.

  1. Главная ссылка к новости (https://blog.chromium.org/2017...)
  2. OpenNews: Релиз Firefox 44
  3. OpenNews: Компания Google представила новый алгоритм сжатия данных Brotli
  4. OpenNews: Facebook опубликовал реализацию алгоритма сжатия Zstandard 1.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45934-chrome
Ключевые слова: chrome, firefox, facebook
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (83) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, trubulizator (ok), 00:54, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +46 +/
    Старая Опера (не хромопера) при отключенном интернете открывала все вкладки из кеша, при возвращении назад грузила страницу тоже из кеша. Мало того, что и по оперативки была самая экономная так ещё и трафик экономила не хило.
     
     
  • 2.16, Shichael Migorin (?), 08:15, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это вообще разные вещи! Одно дело - явно работать в оффлайн режиме, а второе, когда браузер работает с кэшом и при этом проверяет его актуальность. Но ты и дальше можешь поклоняться своей Опере
     
     
  • 3.29, Аноним (-), 11:44, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +19 +/
    Как показал опыт пользования Оперой, явная работа в оффлайн-режиме при нажатии на "назад" намного чаще требуется и удобнее, чем перепроверка кэша на актуальность.
     
     
  • 4.75, phrippy (ok), 12:35, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    100500 плюсов этому анониму!
     
  • 3.33, Grammar Narziss (?), 12:01, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –8 +/
    «в оффлайн-режиме», Буратино
    «с кэшем», дубина стоеросовая
     
     
  • 4.34, trubulizator (ok), 12:58, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –8 +/
    У меня нет кнопки редактирования, бывает пишу быстро, отправляю, а уже потом нахожу ошибки.
    Спасибо Ельцину за развал образования, кстати. Я дитё перестройки, и не одинок
    А по существу у вас 0, лишь бы придраться
     
     
  • 5.36, Аноним (-), 13:06, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > бывает пишу быстро, отправляю, а уже потом нахожу ошибки

    Это сродни признанию "сначала говорю, потом думаю". А виноват Ельцин.

     
  • 5.71, KOT040188 (ok), 01:13, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >У меня нет кнопки

    Нажми "смотреть всё" и появится. Согласен, сайт весьма дурацкий и нелогичный. Этот комментарий 100% удалят, критику здесь страшно не любят.

     
  • 4.35, trubulizator (ok), 13:04, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > «в оффлайн-режиме», Буратино
    > «с кэшем», дубина стоеросовая

    Кстати, «в оффлайн-режиме» - это у вас не правильно, и является типичным словом-паразитом, американизмом, портящим русский язык

     
     
  • 5.45, Grammar Narziss (?), 13:37, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Акцент на дефис.
    На принцип связи слов.

    P. S. Извини за "акцент", "дефис" и "принцип".

     
     
  • 6.77, Unreal Grammar Nazi (?), 18:45, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Акцент на дефис.
    > На принцип связи слов.
    > P. S. Извини за "акцент", "дефис" и "принцип".

    Оборот, использованный вами, используется следующим образом:


    P.S.: Ля-ля-ля.


    Акцент на отсутствие пробела и двоеточие.

    P.S.: А ещё в русском языке используются не прямые кавычки, а «ёлочки» и „лапки“.

     
     
  • 7.90, Grammar Narziss (?), 08:23, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    http://new.gramota.ru/spravka/buro/search-answer?s=скриптум
     
  • 5.51, Аноним (-), 15:00, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > это у вас не правильно, и является типичным словом-паразитом

    слова зануды.
    Язык дан нам для общения. И чем общение будет понятнее - тем лучше.

     
     
  • 6.74, фыв (??), 07:19, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    От засорения односмысловыми словами он не станет понятнее.
     
  • 5.52, Аноним (-), 15:20, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Единственное отторжение у меня вызывает выражение "дорожная карта". Многие остальные заимствования часто лучше подходят под контекст общения, чем русские аналоги. И нет ничего плохого, что язык становится богаче и позволяет более тонко выражать мысли и эмоции.
     
     
  • 6.62, Аноним (-), 20:57, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А как надо?
    Дорогкская карта? Карта Дорога?
     
     
  • 7.64, Аноним (-), 21:29, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Планирование. И короче :).
    http://www.bolshoyvopros.ru/questions/100926-chto-takoe-dorozhnaja-karta.html
     
  • 7.68, Аноним (-), 23:09, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Например "разработан план работ" или "спроектировано", или просто "рассмотрено решение". В зависимости от контекста можно подобрать вполне правильные слова. Но "у нас уже готова дорожная карта по внедрению чего-то там" - совершенно некорректно. В английском way значит "способ, путь, метод, средство", т.е. способ решения чего-то. В русском дорога - это дорога. Т.е. термин ущербный, нарушает обратную совместимость.
     
     
  • 8.70, Pse (?), 00:03, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще-то, дорожная карта - это roadmap Причем тут way, казалось бы ... текст свёрнут, показать
     
     
  • 9.81, Grammar Narziss (?), 20:35, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    При чём тут , Буратино ... текст свёрнут, показать
     
  • 7.89, Аноним (-), 23:18, 30/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    :-) шутка не удалась.

    "Dorog, 2510 Hungary"
    https://www.google.com/search?q=карта+дорог

    P.S. А может я нашел смысл там где его нет.

     
  • 2.22, Аноним (-), 11:06, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и по кнопке назад открывались страницы в том виде в котором ее покинул, целиком из кэша.
     
  • 2.37, Аноним (-), 13:12, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Еще в старой опере можно было отключить картинки и правым кликом в меню подгружать нужные. Мне этой функции очень не хватает. Видимо потому, что сейчас у всех интернет 100 мегабит, на таких, как я, с интернетом 128 кбит/с, просто забили.
     
     
  • 3.79, Аноним (-), 20:02, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    В ublock origin есть фича по блокировке медиа-контента тяжелее какого-то порога. Ставится красный плейсхолдер и по клику картинка загружается.
    Ещё был https://addons.mozilla.org/en-US/firefox/addon/imglikeopera/ . Вроде до сих пор можно заставить работать, переключив лису на старую систему кэша.
     
  • 2.56, Аноним (-), 17:33, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Старая опера работала с веб 1.0, но не выдержала нового, тяжелого интернета.
     
  • 2.69, Слсла (?), 23:19, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Опера была лучшим браузером. И по скорости, и по безопасности, и по удобству. И даже по кастомизации, если кому надо было, могли из нее такие конструкторы делать...
    И до сих пор ни один браузер не имеет такого идеального скроллинга как в старой Опере.

    Убили его, глобалисты, американцы, окаянные. Как и Нокию.

     
  • 2.73, Аноним (-), 04:43, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А всё. Так больше не кодят. Через 20 лет разработчики гугла преподнесут "это" как их ново-изобретенную фичу.
     
  • 2.91, Аноним (-), 10:04, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это кэширование иногда выходило боком в престоопере. Например, при недоступности соединения с сайтом, она вываливала страницу из кэша (иногда без стилей, изображений) и непонятно, то ли сайт тупит, но все-таки вернул какой-то ответ, то ли вообще недоступен и старье показывается из кэша. Медвежья услуга, в общем.
     

  • 1.2, Аноним (-), 01:00, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    В Firefox бесит, когда редактируешь какую-нибудь форму, применяешь, а потом жмёшь "назад", а он не из кэша выдаёт, а сабмитит её заново. Или при восстановлении сеанса заново всё грузит и если сайт недоступен уже показанный прокэшированный вариант заменяет на страницу ошибки.
     
     
  • 2.3, Аноним (-), 01:22, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Кури google и about:config. Все настраивается.
     
     
  • 3.13, Zampolit (?), 05:35, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Подскажите хоть что искать.
     
  • 3.38, Аноним (-), 13:14, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Можно подробнее. Мне тоже интересна данная возможность.
     
  • 3.53, Аноним (-), 15:23, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Товарищ аноним видимо больше не появится. Кто разобрался в вопросе, расскажите, очень раздражает этот режим работы
     
     
  • 4.65, Аноним (-), 21:29, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня набранный текст восстанавливается при нажатии "Go back".
    Специально это не настраивал.

    Я делал изменения вот по этим страницам
    lurkmore.to/огнелис
    ru.wikibooks.org/wiki/Защита_конфиденциальных_данных_и_анонимность_в_интернете#Mozilla_Firefox
    kb.mozillazine.org/About:config_entries

    Возможно вот этот параметр browser.cache.check_doc_frequency
    Но сейчас пробовал менять его - текст все равно сохраняется.

    На всякий случай - при "network.http.sendRefererHeader = 0" не сможете постить на опеннете.

     
     
  • 5.80, Аноним (-), 20:05, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > На всякий случай - при "network.http.sendRefererHeader = 0" не сможете постить на опеннете.

    Потому что реферер надо подменять на корень сайта, а не отключать. И уж точно не отключать при переходах в пределах самого сайта.

     
  • 2.30, freehck (ok), 11:50, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > В Firefox бесит, когда редактируешь какую-нибудь форму, применяешь, а потом жмёшь "назад", а он не из кэша выдаёт.

    Хм. А у меня не так. Возможно, в Debian мейнтейнеры приняли какие-то другие дефолты в about:config. Посмотрите на отличия вашего и нашего, может найдёте какую-нибудь разницу.

     

  • 1.4, Отражение луны (ok), 02:09, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Они бы лучше подумали как создать адекватную замену убогому HTMLю.
     
     
  • 2.5, Аноним (-), 02:24, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +15 +/
    > Они бы лучше подумали как создать адекватную замену убогому HTMLю.

    Так ты дам им свой совет инженерный, они то что, простые лузеры, а ты то знаешь толк

     
     
  • 3.6, Отражение луны (ok), 03:10, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Им не ко мне, им к проекту Qt, который создал действительно самый лучший и удобный язык для построения интерфейсов.
     
     
  • 4.10, Свидетель Qt (?), 04:36, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Героям слава!
     
  • 4.39, Аноним (-), 13:19, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зря минусуете, шикарнейшая вещь. Гораздо меньше текста, гораздо легче читается и валидируется.
     
  • 4.41, Аноним (-), 13:24, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Между прочем есть проекты, реализующие поддержку QML в браузерах. Т.ч. скоро можно будет  весь интерфейс писать на нем, и подгружать объектом несколькими строками html.
     
     
  • 5.49, Отражение луны (ok), 14:03, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это хорошая новость.
    Плохая заключается в том, что HTML + обвязка в виде css + ужаснейший api для яваскрита всегда будут работать медленнее, чем изначально правильно спроектированная система. Кроме того, в стандартах там столько ньюансов, что просто невозможно обеспечить идентичное поведение и рендеринг элементов на разных браузерах. Когда как в QML Rectangle - это просто Rectangle, куда его поставишь - там он и будет.
     
  • 4.42, Аноним (-), 13:25, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Он не open source. Этот показатель перевешивает все плюсы бинарных форматов.
     
  • 3.14, Тот_Самый_Анонимус (?), 06:00, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Поговаривают что двоичные форматы проще для обработки и легче по трафику, чем текстовые.
     
     
  • 4.19, A (?), 09:32, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    "Бессовестно врут!" ©
     
  • 4.40, Аноним (-), 13:22, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Да, но open source'ность оказывается важнее.
     
     
  • 5.57, Тот_Самый_Анонимус (?), 17:55, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да, но open source'ность оказывается важнее.

    1. Не для всех. Ярые адепты идут в тoпку.
    2. Двоичность формата не означает закрытость. Формат может быть транслируем в текст и обратно напрямую.
    3. Для особо интересующихся может быть версия сайта с «исходниками».
    4. Да много чего ещё можно сказать, было бы желание. Мир не чёрно-белый, и компромиссы всегда найдутся.

     
     
  • 6.67, Аноним (-), 23:02, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ярые адепты идут в тoпку.

    Вот не идут. HTML чрезмерно избыточен и неудобен. Есть море аналогов, которые превосходят его во всём, но не взлетают... Google и другие крупные компании добавляют разные костыли, типа разных обфускаторов, сжатий и т.д чтобы удерживать HTML на плаву, вместо того, чтобы просто параллельно внедрить в chrome тот же зарекомендовавший себя в андроидовских приложениях qml.

     
     
  • 7.93, Тот_Самый_Анонимус (?), 21:33, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Ярые адепты идут в тoпку.
    > Вот не идут.

    Идут. Строевым шагом. Новые форматы не принимаются не потому что они открыты или закрыты, а потому что начинается эффект лебедя, рака и щуки. Каждый хочет что-то своё, и, в результате, хтмл остаётся. Стандарт он на то и стандарт, чтобы быть общим, вне зависимости от того, есть ли более продвинутые альтернативы, или нет.

     
  • 3.76, Аноним (-), 15:39, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Концептуально товарищ правильно говорит Современный web - это примерно как игра... большой текст свёрнут, показать
     
  • 2.20, Аноним (-), 10:39, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ты какой-то толстый сегодня. Попробуй стать тоньше.
     
     
  • 3.31, freehck (ok), 11:53, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты какой-то толстый сегодня. Попробуй стать тоньше.

    Роман о становлении сетевого тролля, -- "Худеющий".

     
  • 2.43, Аноним (-), 13:29, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    JSON. Но это убожество <trololololo><>><<<><>> уже слишком популярно.
     
  • 2.44, Аноним (-), 13:33, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    QML - декларативный язык программирования, основанный на JavaScript, предназначенный для дизайна приложений, делающих основной упор на пользовательский интерфейс. Синтаксис в формате json, позволяет легко описывать любые анимации. Компилируемый, т.ч. клиенту не надо каждый раз интерпретировать тонны текста. Компактный по сравнению с html. Уже можно использовать в браузерах.
     
     
  • 3.60, BlackRaven86 (ok), 19:12, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Нативная поддержка QML в браузере была бы очень кстати, но надежды на это пока особо нет.
     
  • 2.48, Аноним (-), 13:56, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Из текстовых форматов давно придумали, называется JSON. Есть даже сравнение на странице в википедии: https://ru.wikipedia.org/wiki/JSON
    Бинарных форматов придумано море, но все они вообще не взлетели.
     
     
  • 3.82, Crazy Alex (ok), 00:09, 30/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какой-то идиот не способен отличить формат сериализации от языка описания интерфейса. Бывает.
     

  • 1.7, Аноним (-), 03:19, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    отключил гуглятский spdy и на практике инет ускорился, хотя теория говорит об обобратном
     
     
  • 2.21, Аноним (-), 10:40, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > отключил гуглятский spdy и на практике инет ускорился, хотя теория говорит об
    > обобратном

    Могу подтвердить. Давно отключил все гуглозонды в about:config. Браузер (по ощущениям) действительно быстрее грузит страницы.

     
     
  • 3.72, аноним2 (?), 02:08, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    SPDY deprecated жи в пользу http/2.0
     

  • 1.9, Аноним (-), 04:07, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Компания Facebook подвела итоги инициативы по увеличению эффективности локального кэширования на стороне web- браузеров, проведённой совместно с разработчиками Chrome и Firefox.

    Три девицы под окном / Пряли поздно вечерком. / "Кабы я была царица, / - Говорит одна девица, / - То на весь крещеный мир / Приготовила б я пир"...

     
  • 1.11, Аноним (-), 04:38, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Итого выводы: в хроме понаворотили странной эвристики, которая будет меняться от версии к версиии и непонятно, как вообще работает, в фаерфоксе добавили нестандартизированный хедер. Оба молодцы.

    Если есть проблемы с кешированием (а они есть), нужно идти в w3c и начинать разработку нового стандарта, а не городить костыли.

    По поводу фейсбучного POST: я не знаю, как у них устроена авторизация, но у всего интернета все работает, а у них, из-за странной авторизации, вся страница перегружается — так может переделать фейсбучный сайт, а не затачивать все браузеры под их страничку?

     
     
  • 2.23, Ordu (ok), 11:23, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А может все же лучше chrome исправить, чтобы он корректно с кешом работал при POST запросах, а не переписывать все сайты под chrome?
     
     
  • 3.86, нах (?), 17:09, 30/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    нет, не лучше. Он корректно работает с кэшом. Работал. Теперь вот не будет.
    То что у фейсбука пост-запрос возвращает фейсбук целиком вместо странички "ok, ты залогинился, через секунду покажем остальное", это проблема исключительно фейсбука и его чудесной авторизации.

    А вот ради фейсбуков переделать весь интернет чтобы он "корректно" работал со странным поведением хромокэша - это по нашему.
    Мазильный вариант, на удивление, хорош - если какой-то файл в принципе не способен меняться, незачем его и переспрашивать. Но способен или нет - решает сервер, а не гуглоробот по одному ему ведомым косвенным признакам.

    Но я уверен что гугль это не примет. Даже если мазила продавит это через w3c.
    Гугль очень любит свои гoвноэвристики и "сделать хорошо 60% пользователей, насрав на остальных".

     
     
  • 4.87, Ordu (ok), 18:18, 30/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Эмм Может я не прав, но ведь фейсбук действует без нарушения rfc на HTTP А в... большой текст свёрнут, показать
     
     
  • 5.94, . (?), 11:50, 05/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    rfc - это request for comments То есть авторы этой неудавшейся попытки заст... большой текст свёрнут, показать
     

  • 1.12, Аноним (-), 05:19, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Извините за баян, но у айтишников обычно есть две проблемы :
    Инвалидация кеша, именование сущностей и ошибка на 1
     
  • 1.15, Аноним (-), 08:08, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Большинство серверов давно умеют указывать что кешировать, что не менялось столько то времени,
    Типа не качай а бнри из кэша,
    А они наконец то допетрили, ну тормозные ...
     
     
  • 2.17, Аноним (-), 08:16, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Большинство серверов давно умеют указывать что кешировать, что не менялось столько то
    > времени, Типа не качай а бнри из кэша,

    В том то и проблема, что ты знаешь как давно не менялся файл на момент запроса, но не можешь точно знать когда он изменится в будущем.  "cache-control: max-age" лишь прогноз и не факт, что за это время файл не поменяют. Узнать поменялся или нет файл можно только опять обратившись к серверу (если сервер вернул 302 то и возвращается файл из кэша, но запрос всё равно отправляется). Поэтому создатели браузеров придумывают всякую эвристику, а web-мастера прибегают к ухищрениям в виде даты/хэша/случайного числа в имени файла CSS/JavaScript.

     
     
  • 3.25, Аноним (-), 11:28, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > но не можешь точно знать когда он изменится в будущем

    Это невозможно до изобретения машины времени. Но проблему научились обходить

    > в виде даты/хэша/случайного числа в имени файла CSS/JavaScript.

    ... так что, это уже и не нужно по сути.

     
  • 3.46, Аноним (-), 13:40, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Всегда указываю картинкам бесконечность, а в html приписываю к ссылке параметр с датой изменения. При изменении картинки меняется параметр, т.е. меняется ссылка. Браузер скачивает измененную картинку как новую. Единственная проблема при таком подходе - на стороне клиента остается старая картинки, которая на моем сайте уже не используется. Браузер может статистически определить что она больше не используется и удалить, но делает ли он это? Или все мои версии копятся у клиентов бесконечно?
     
     
  • 4.78, Unreal Grammar Nazi (?), 18:52, 29/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Всегда указываю картинкам бесконечность, а в html приписываю к ссылке параметр с
    > датой изменения. При изменении картинки меняется параметр, т.е. меняется ссылка. Браузер
    > скачивает измененную картинку как новую. Единственная проблема при таком подходе -
    > на стороне клиента остается старая картинки, которая на моем сайте уже
    > не используется. Браузер может статистически определить что она больше не используется
    > и удалить, но делает ли он это? Или все мои версии
    > копятся у клиентов бесконечно?

    Хранятся, но не бесконечно, а в течение некоторого разумного лимита времени, порядка недели.

     
  • 4.92, Аноним (-), 18:02, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Браузер может статистически определить что она больше не используется и удалить, но делает ли он это?

    Конечно. Когда юзер подошёл к предельному размеру кеша (а это почти всегда, если не очищает вручную/автоматически), браузер постоянно удаляет (самое старое лежащее или самое старое использованное) элементы, чтобы сохранить новые.

     

  • 1.18, catvlad98ya.ru (?), 09:31, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А можно ещё с заголовками передавать хеш файла и при повторной загрузке страницы сравнивать значения серверного и локального хеша. Увеличение скорости загрузки страницы будет существенным
     
     
  • 2.24, Аноним (-), 11:25, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты только что придумал https://ru.wikipedia.org/wiki/HTTP_ETag
     
     
  • 3.63, Catvlad (?), 20:59, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Идея с хешем позволяла бы хранить одну копию библиотелки для всех сайтов
     
     
  • 4.83, Crazy Alex (ok), 00:13, 30/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Именно. А заодно - оказала бы некоторое давление в сторону использования одних  и тех же либ, а не "а вот мы чуток подправим и минимизируем по-своему". Глядишь, бардака в вебе стало бы чуть меньше.
     

  • 1.26, Anonimus (??), 11:30, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Цукерберг подсчитал и решил сэкономить пару ярдов на инфраструктуре и пораскинул рамсы с королями браузерного мира.
    Вот и нам простым юзерам перепало в виде экономии мобильного трафика и ускорения загрузки страниц.
    Пафос к тому, что сколько не пости в багтрекер и не голосуй, простого юзера никто не послушает. Собака лает, караван идет...
     
     
  • 2.95, . (?), 11:58, 05/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Цукерберг подсчитал и решил сэкономить пару ярдов на инфраструктуре

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

    Цукерберг мог бы просто изменить авторизацию (тем более что миллионы мух как год назад залогинились, так и сидят), но зачем, ведь в мире нет других сайтов кроме факбука (а если есть, прогнутся)

    > Вот и нам простым юзерам перепало в виде экономии мобильного трафика и

    вы все еще платите покилобайтно да еще и сидите в факбуке с мабилы через _браузер_ ?

    Вас ничто не спасет, вы безнадежны.

     

  • 1.27, DmA (??), 11:30, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Не фиг мой диск изнашивать каким-то кешированием, пусть с сайта запрашиваются странички снова каждый раз!
     
     
  • 2.54, Аноним (-), 15:35, 28/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Если низкие задержки передачи и большая скорость, то почему бы и нет. Другой вопрос, если мобильный интернет и задержка, к примеру 500 мс, не плодя лишних соединений на страницу с 10 картинками уйдет уже 5000мс. Если взять скорость 3G то надо прибавить еще время передачи, которое для 3 Мб странице составит еще порядка 5000 мс. В придачу скачанные html, css, js, изображения надо разжать, распарсить, интерпретировать, скомпилировать, построить дерево и т.д. и т.п. html кстати в этом смысле оооочень неэффективный.
    Выйдет без кэширования как не старайся, 10 секунд будет уходить на каждое открытие страницы.
     

  • 1.47, Аноним (-), 13:45, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Изменен ли файл или нет - должно обозначаться в html коде страницы, это единственный правильный метод. Сменился файл - смени ссылку, делов то. И клиент естественным образом поймет, новая ссылка - новый файл. И не надо никаких дополнительных запросов. Все эти cache-control: max-age - только для html страниц.
     
  • 1.66, Аноним (-), 21:36, 28/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Так тихо и незаметно браузеры превратились в толстых клиентов фейсбука.
     
  • 1.84, Crazy Alex (ok), 00:16, 30/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот чего я не пойму - почему фейсбук и подобные приложения вообще в используют как основу HTML/HTTP. Казалось бы - тащи сериализованный формат через какие-нибудь вебсокеты и полностью сам контролируй, когда, где и как его кэшировать (в LevelDB, например).
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру