ServiceWorker работает совместно с Cache API - верно.
Но ServiceWorker исполняется еще до начала запроса к серверу, как только вы ввели адрес в адресную строку, ServiceWorker решает что делать дальше.
Это часть PWA направлена на то, чтобы сделать веб приложения работоспособными в оффлайне и дать им возможность предварительной загрузки, даже когда сайт закрыт.
Если пользователь хотя бы раз посещал сайт, у него уже закеширован shell (js/css).
А идея как раз в том, что динамику, а именно html содержимое страницы можно вытягивать из Google Cache/AMP.
https://developers.google.com/web/fundamentals/getting-started/primers/service-workers
[ATTACH]159209[/ATTACH]
Как я понимаю в respondWith можно вставить и другой код, в том числе и перенаправление запроса и его модификация.
(возможно я ошибаюсь, это просто идея)
Соответственно, ServiceWorker отдает offline.html и выполняет appendChild в body с ответа от Google Cache/AMP/других кластеров.
Это не подойдет для отправки комментариев, поиска по сайту (можно перенаправлять запросы в Google поиск для сайтов), отдачи картинок из содержимого (можно сразу вставлять картинки из CDN/Google Cloud Storage).
Но это подойдет для того, чтобы просто отдавать информацию из Google Cache в шкурке сайта без изменения URL и с сохранением навигации внутри сайта.
Кроме этого, ServiceWorker работает, даже если вкладка с сайтом закрыта (вне процесса вкладки с сайтом).
Соответственно, можно равномерно подгружать ресурсы по типу Push-уведомлений.
Mozilla создали соответствующий плагин для WordPress
https://en-gb.wordpress.org/plugins/offline-shell/
Да, но в отличии от прокси, это будет работать из коробки у 60% пользователей и в качестве хостера служат супербыстрые сервера Google.
Как вариант, можно использовать Google AMP сервера, а не Google Cache.
Тогда данные будут на 100% последние и актуальные.
Я думаю, реализация очень простая, примерно пару строк в плагине от Mozilla.
Конкретно для меня это неактуально, но возможно кому-то пригодится.
Просто хотел сохранить и поделиться идеей.
Как я понимаю, после этого сайту не страшны блокировки или DDOS?
А как быть с HTTPS? Как происходит повторная валидация сертификатов?
Как я понимаю, если сайт открывается с пометкой "Secure" в Chrome даже в Offline режиме, то повторная валидация не обязательна?
Основная гипотеза прокрастинации - тревога и перфекционизм.
Возможно вам кажется, что еще кружечка кофе и вы готовы работать, но на деле вам нужно расслабляться и отдыхать, а не стимулировать и заставлять себя работать.
Просто разрешите себе отдых.
Вы не живете ради работы, вы работаете ради жизни и счастья.
Уменьшить фоновую тревогу (генерализованное тревожное расстройство) можно:
1. Исключив любые стимуляторы, включая даже черный/зеленый чай.
2. Наладить сон и попробовать сместить график в сторону раннего пробуждения.
Я знаю, что многие с тревогой наоборот склонны работать поздно ночью, но хоть и не очевидно, это только усугубляет тревогу днем.
3. Отключить любые Push и email оповещения - уменьшайте фоновый шум и поступающую информацию, которая может вас отвлекать. Серьезно, вам не нужно быть в курсе последних новостей из Украины или 265 съезда веб-мастеров в Санкт-Петербурге.
Если вам будет что-то нужно, вы найдете это в поисковой системе.
4. Не планируйте сделать сразу всю работу, планируйте только 1-2 часа в день утром и если вам понравится прогресс, вы и сами продолжите работать дольше. Но начать реализацию одного мелкого функционала, который займет 1 час гораздо проще, чем настроить себя на выполнение проекта, который откладывали неделями.
5. Обходите дискуссию и диалоги, которые вы будете обдумывать на протяжении дня.
Наверное, каждый проводил часы рабочего времени обновляя страницу на форуме, где вы пробуете доказать свою правоту.
Это результат прокрастинации и лучше начинать диалоги и дискуссии тогда, когда вам это нужно и выгодно.
6. Четко разделяйте различные сферы своей жизни. - Да, именно для этого и нужны профили в Google Chrome! Никакого порно и социальных сетей в рабочем профиле.
Нужно смотреть, какой именно шрифт используется на вашем сайте.
Вы привели примеры шрифтов Roboto/Open Sans.
Есть два варианта почему удаление кода не повлияло на отображение:
1. Эти шрифты не используются для отображения документа (не прописаны в font-family) или используются в тех местах, где вы не еще не успели заметить.
2. Эти шрифты уже установлены в вашу систему (например, вместе с офисными программами) или подгружаются в CMS (в WordPress, Open Sans подгружается для отображения панели управления).
Также, рекомендую использовать CDN Google Fonts для загрузки шрифтов Roboto/Open Sans.
Есть большая вероятность того, что эти файлы будут в кеше пользователя ибо многие используют Google Fonts для загрузки именно Roboto/Open Sans.
Если не ошибаюсь, Google Fonts CDN также использует анализ UA, чтобы отдать именно нужный формат шрифта, вместо того, чтобы прописывать код для всех возможных форматов (как в вашем примере).
Который разрушает всю идею классов, делая из них по сути идентификаторы.
По сути, кроме Яндекса его никто и не использует.
Большинство популярных CMS - WordPress, VBulletin, Ghost, сайтов - Google, Medium, Wikipedia используют классическую гибкую разметку.
Представим на сайте есть кнопки, которые могут быть тегами label, a, button, input, span.
Классическим выходом будет просто дописывать class="button" в HTML, например, <label class="button">, и задать стили для .button в CSS.
Если нужно дополнительное оформление исходя из элемента, можно уточнить, label.button, a.button и так далее.
Но исходя из Яндекс БЭМ, нужно писать <label class="label__button">, <a class="a__button">.
И даже больше, если нужно оформить определенное состояние элемента, например, :hover, Яндекс предлагает писать .label__button--hover вместо label.button.hover.
А если у вашей кнопки есть родители, тогда вам нужно всех их прописать в название класса.
Вместо .list a - .ul__list__item__link.
Какое из этого удобство?
То, что Internet Explorer 8 обрабатывает селектор .label__button--hover на 2 мс быстрее label.button.hover? Так ведь и растет количество этих самых селекторов!
Стабильность и структурированность? - Возможно, но в ущерб гибкости. Тем-более, те же цепочки классов можно воссоздать и в SASS.
Есть новый информационный не новостной сайт, который только попал в индекс Яндекс.
Причем был просканирован после апдейта, а попал в индекс в день, когда апдейта не было (что намекает на динамичность выдачи).
В Google все запросы вылезли сразу в топ-30, в Яндекс топ-40 вылезли НЧ, а более крупные запросы ниже за топ-100.
Однако!
Я запускаю проверки по пару раз на протяжении дня, чтобы лучше понять алгоритмы Google.
В pr-cy когда проверяешь позиции в Google, то Яндекс проверяется бесплатно за компанию.
Так вот, заметил, что некоторые запросы покрупнее попадают в топ-10, обновляю еще раз через минуту и уже топ-100.
Я подумал, что это проблема на стороне pr-cy и выполнял те же действия но в topvisor.
И то же самое произошло там.
При этом, мною не удалось зафиксировать мой сайт в топ-10 по этим запросам при переходе по ссылке на поисковую выдачу, только topvisor/pr-cy зафиксировали этот феномен.
Возможно, Яндекс подмешивает некоторые новые сайты/страницы в выдачу топ-10 (что опять таки намекает на динамичность выдачи), чтобы оценить ПФ или это общий глюк topvisor/pr-cy или xml-сервиса Яндекс, по которому работают topvisor/pr-cy.
Их не надо устанавливать.
Это веб версии приложений.
Благодаря последним обновлениям Google Chrome/Firefox, все эти веб версии могут получить поддержку работы без подключения к интернету, благодаря ServiceWorker.
https://developers.google.com/web/progressive-web-apps/
Mozilla выпустил плагин, который превращает ваш WordPress сайт в PWA приложение, которое работает без подключения к интернету. Пользователь посетивший ваш сайт, получает опубликованные статьи без посещения сайта (как Web Push, но без запросов на права) и может открыть из даже без подключения к интернету.
https://en-gb.wordpress.org/plugins/offline-content/
Впрочем, сам WordPress сделал шаг к PWA и отдельной прокладке на nodejs/angular/react, с введение REST API в 4.7.
Я навел список тех, что я использую.
Как пример,
https://web.skype.com как замена Skype на компьютере
https://todoist.com может работать оффлайн и синхронизируется при подключении к интернету
Из плюсов - все закреплено за вашей почтой из коробки, не надо ничего бекапить, синхронизировать.
Можно создать новый профиль в Google Chrome и вуаля, у вас новый Skype, Google Drive, Google Music, Youtube.
Таким способом, я разделяю разные аспекты своей жизни.
Так сказать, порно в одном профиле, а работе в другом. :)
Из минусов - производительность.
Безусловно, в большинстве случаев, DOM/JS работают намного медленнее и менее стабильнее EXE программ.
Я за идею.
В таком случае, можно было бы просто в качестве ника использовать название бренда.
Windows 10 - потому, что:
1. Самая актуальная.
2. Мое комплектующего лучше всего дружит с Windows, чем с другими ОС.
Но особо не привязан к ОС и могу работать, хоть с телефона по ряду причин.
Предпочитаю PWA (Progressive Web Apps) вместо обычных EXE приложений.
Skype for Web, Messenger, Gmail, Todoist, Google Drive, Google Docs, Google Chrome для просмотра PDF, Google Contacts/Calendar/Keep с синхронизацией с телефоном, Google Music для прослушивания музыки, Google в качестве таймера, калькулятора, прогноза погоды.
Из обязательных приложений на моей компьютере:
Google Chrome - весь мир в одном аккаунте, полностью согласен со слоганом Google.
Firefox/Edge - иногда тестирую верстку, но заметил, что особой необходимости в этом уже нету.
Sublime Text 2 с синхронизацией Package Manager с Google Drive.
WinSCP + Putty для работ с сервером.
uTorrent - с радостью бы обошелся расширения для Chrome, но отсутствуют таковые.
PaintNET/Photoshop - потому, что онлайн версии очень нестабильные и урезан функционал.
F.lux или аналог - обязательно.
Punto Switcher перестал использовать в связи с тем, что процесс explorer.exe начинает есть до 20% CPU при движении мышей, когда установлена и запущена последняя версия Punto Switcher.
Подозреваю, что Яндекс встроил вебвизор в Punto Switcher в дополнение к кейлогеру.
Вирус от которого не поможет антивирус.
Устанавливаю приложения только с официальных сайтов.
Предпочитаю месячную подписку на приложения/сервис.
Перестал делать бекапы и отключил встроенный антивирус примерно 2 года назад.
Главное не пропустить галочку - "Установить Яндекс браузер".
А если например создать sitemap.html с перечислением всех адресов сайта и добавить ее в Google Webmaster - сканирование - просмотреть как googlebot - запросить индекс - СКАНИРОВАТЬ ДРУГИЕ АДРЕСА НА ЭТОЙ СТРАНИЦЕ.
И выполнять это действие по мере добавления новых страниц на сайт, также не забывая обновлять sitemap.html.
Я не пробовал такой метод.
Но должно работать.