Нажмите для увеличения
Описание
Этот плагин раньше назывался "No-cache BFCache", что, по общему признанию, было плохим жаргонным названием и имело слишком узкую область применения.
Этот плагин обеспечивает мгновенную навигацию вперед и назад через bfcache браузера. Это делается путем удаления директивы no-store из заголовка ответа Cache-Control, который WordPress отправляет по умолчанию при вызове nocache_headers(). В основном это происходит, когда пользователь вошел в систему, но некоторые плагины могут отправлять эти заголовки "без кэша", например, на страницах корзины или оформления заказа на сайте электронной коммерции. После активации, чтобы увидеть эффект, вам необходимо выйти из WordPress и снова войти в систему, убедившись, что установлен флажок "Запомнить меня". Несмотря на это, может быть активен другой плагин, тема или конфигурация сервера, что делает страницы неприемлемыми для bfcache по другим причинам блокировки. Тем не менее, удаление no-store по-прежнему ускорит навигацию вперед и назад, поскольку тогда страницы могут обслуживаться из HTTP-кэша браузера, что устраняет необходимость повторной загрузки HTML с сервера. Это функциональный плагин для реализации 63636 в ядре WordPress.
Сообщение в блоге: Мгновенная навигация вперед/назад в WordPress
Скорость навигации по страницам в WordPress значительно выросла в версии 6.8 с появлением спекулятивной загрузки. Однако по умолчанию спекулятивная загрузка в WordPress не настроена на мгновенную загрузку страниц, что требует неконсервативного рвения с режимом предварительной визуализации; не все сайты могут даже согласиться на предварительный рендеринг из-за проблем совместимости, например, с аналитикой, а также из-за опасений по поводу устойчивости неиспользуемых предварительных рендерингов (например, увеличения нагрузки на сервер и увеличения нагрузки на пропускную способность пользователя/ЦП). Хотя спекулятивная загрузка (т. е. API правил спекуляции) является относительно новой и в настоящее время поддерживается только в браузерах Chromium (например, Chrome и Edge), существует гораздо более старая технология веб-платформы, которая обеспечивает предварительную отрисовку и поддерживается во всех браузерах: обратный/прямой кеш (bfcache). Эта мгновенная загрузка не требует сетевого трафика и нагрузки на процессор, поскольку ранее посещенные страницы сохраняются в памяти. Согласно статье web.dev о обратном/прямом кеше:
Данные об использовании Chrome показывают, что 1 из 10 переходов на компьютере и 1 из 5 на мобильных устройствах осуществляется либо вперед, либо назад. Благодаря включенному bfcache браузеры могут исключить передачу данных и время, затрачиваемое на загрузку миллиардов веб-страниц каждый день!
Также узнайте больше из следующего видео:
Обычно WordPress отправляет заголовок Cache-Control с директивой no-store, когда пользователь входит в систему. Это приводит к нарушению bfcache браузера, а это означает, что навигация назад или вперед в браузере требует повторной загрузки страниц с сервера и повторного выполнения любого JavaScript на странице. Результатом может стать медленная навигация не только при навигации по панели администратора WP (см. демонстрационное видео Jetpack и демонстрационное видео ниже), но и при навигации по интерфейсу сайта. Кроме того, отсутствие bfcache может привести к потере данных, когда данные были введены через пользовательский интерфейс, созданный на JavaScript, поскольку это состояние теряется, когда страница не восстанавливается через bfcache (см. демонстрационное видео WooCommerce и демонстрационное видео ниже).
Причина, по которой директива no-store была добавлена в первую очередь, заключалась в соображениях конфиденциальности, когда аутентифицированный пользователь может выйти из WordPress только для того, чтобы другой человек получил доступ к компьютеру и нажал кнопку "Назад", чтобы просмотреть содержимое аутентифицированной страницы, загруженной из bfcache или HTTP-кеша. (См. № 21938.) На практике эта проблема зависит от того, что пользователь находится на общем компьютере и не вышел из браузера, и требует от злоумышленника действовать незадолго до того, как страница будет удалена из bfcache (например, Chrome в виде 10-минутного тайм-аута).
Чтобы решить эту проблему конфиденциальности, предусмотрена защита от восстановления страниц из bfcache и HTTP-кеша после выхода пользователя из системы:
При аутентификации в WordPress файл cookie "токена сеанса bfcache" устанавливается вместе с другими файлами cookie аутентификации. Этот файл cookie не предназначен только для HTTP, поэтому его можно прочитать в JavaScript; это случайная строка, не используемая ни для каких других целей. При обслуживании аутентифицированной страницы этот токен сеанса bfcache включается в HTML, а также в сценарий, который считывает значение этого файла cookie. Когда пользователь уходит со страницы, а затем возвращается на нее, сценарий на странице проверяет, соответствует ли текущий токен сеанса в файле cookie исходному токену сеанса, отправленному вместе со страницей. Если они не совпадают (например, из-за того, что пользователь вышел из системы или другой пользователь вошел в систему), содержимое страницы очищается и страница перезагружается, так что содержимое становится недоступным.
Поскольку для признания кэшированных страниц недействительными требуется JavaScript, форма входа расширена, чтобы указать, включен ли сценарий. Только если JS включен, директива no-store будет исключена из заголовка ответа Cache-Control. Это гарантирует, что пользователи с отключенным JavaScript сохранят защиту конфиденциальности после выхода из системы. Наконец, no-store также опускается только в том случае, если пользователь проверит
Этот плагин обеспечивает мгновенную навигацию вперед и назад через bfcache браузера. Это делается путем удаления директивы no-store из заголовка ответа Cache-Control, который WordPress отправляет по умолчанию при вызове nocache_headers(). В основном это происходит, когда пользователь вошел в систему, но некоторые плагины могут отправлять эти заголовки "без кэша", например, на страницах корзины или оформления заказа на сайте электронной коммерции. После активации, чтобы увидеть эффект, вам необходимо выйти из WordPress и снова войти в систему, убедившись, что установлен флажок "Запомнить меня". Несмотря на это, может быть активен другой плагин, тема или конфигурация сервера, что делает страницы неприемлемыми для bfcache по другим причинам блокировки. Тем не менее, удаление no-store по-прежнему ускорит навигацию вперед и назад, поскольку тогда страницы могут обслуживаться из HTTP-кэша браузера, что устраняет необходимость повторной загрузки HTML с сервера. Это функциональный плагин для реализации 63636 в ядре WordPress.
Сообщение в блоге: Мгновенная навигация вперед/назад в WordPress
Скорость навигации по страницам в WordPress значительно выросла в версии 6.8 с появлением спекулятивной загрузки. Однако по умолчанию спекулятивная загрузка в WordPress не настроена на мгновенную загрузку страниц, что требует неконсервативного рвения с режимом предварительной визуализации; не все сайты могут даже согласиться на предварительный рендеринг из-за проблем совместимости, например, с аналитикой, а также из-за опасений по поводу устойчивости неиспользуемых предварительных рендерингов (например, увеличения нагрузки на сервер и увеличения нагрузки на пропускную способность пользователя/ЦП). Хотя спекулятивная загрузка (т. е. API правил спекуляции) является относительно новой и в настоящее время поддерживается только в браузерах Chromium (например, Chrome и Edge), существует гораздо более старая технология веб-платформы, которая обеспечивает предварительную отрисовку и поддерживается во всех браузерах: обратный/прямой кеш (bfcache). Эта мгновенная загрузка не требует сетевого трафика и нагрузки на процессор, поскольку ранее посещенные страницы сохраняются в памяти. Согласно статье web.dev о обратном/прямом кеше:
Данные об использовании Chrome показывают, что 1 из 10 переходов на компьютере и 1 из 5 на мобильных устройствах осуществляется либо вперед, либо назад. Благодаря включенному bfcache браузеры могут исключить передачу данных и время, затрачиваемое на загрузку миллиардов веб-страниц каждый день!
Также узнайте больше из следующего видео:
Обычно WordPress отправляет заголовок Cache-Control с директивой no-store, когда пользователь входит в систему. Это приводит к нарушению bfcache браузера, а это означает, что навигация назад или вперед в браузере требует повторной загрузки страниц с сервера и повторного выполнения любого JavaScript на странице. Результатом может стать медленная навигация не только при навигации по панели администратора WP (см. демонстрационное видео Jetpack и демонстрационное видео ниже), но и при навигации по интерфейсу сайта. Кроме того, отсутствие bfcache может привести к потере данных, когда данные были введены через пользовательский интерфейс, созданный на JavaScript, поскольку это состояние теряется, когда страница не восстанавливается через bfcache (см. демонстрационное видео WooCommerce и демонстрационное видео ниже).
Причина, по которой директива no-store была добавлена в первую очередь, заключалась в соображениях конфиденциальности, когда аутентифицированный пользователь может выйти из WordPress только для того, чтобы другой человек получил доступ к компьютеру и нажал кнопку "Назад", чтобы просмотреть содержимое аутентифицированной страницы, загруженной из bfcache или HTTP-кеша. (См. № 21938.) На практике эта проблема зависит от того, что пользователь находится на общем компьютере и не вышел из браузера, и требует от злоумышленника действовать незадолго до того, как страница будет удалена из bfcache (например, Chrome в виде 10-минутного тайм-аута).
Чтобы решить эту проблему конфиденциальности, предусмотрена защита от восстановления страниц из bfcache и HTTP-кеша после выхода пользователя из системы:
При аутентификации в WordPress файл cookie "токена сеанса bfcache" устанавливается вместе с другими файлами cookie аутентификации. Этот файл cookie не предназначен только для HTTP, поэтому его можно прочитать в JavaScript; это случайная строка, не используемая ни для каких других целей. При обслуживании аутентифицированной страницы этот токен сеанса bfcache включается в HTML, а также в сценарий, который считывает значение этого файла cookie. Когда пользователь уходит со страницы, а затем возвращается на нее, сценарий на странице проверяет, соответствует ли текущий токен сеанса в файле cookie исходному токену сеанса, отправленному вместе со страницей. Если они не совпадают (например, из-за того, что пользователь вышел из системы или другой пользователь вошел в систему), содержимое страницы очищается и страница перезагружается, так что содержимое становится недоступным.
Поскольку для признания кэшированных страниц недействительными требуется JavaScript, форма входа расширена, чтобы указать, включен ли сценарий. Только если JS включен, директива no-store будет исключена из заголовка ответа Cache-Control. Это гарантирует, что пользователи с отключенным JavaScript сохранят защиту конфиденциальности после выхода из системы. Наконец, no-store также опускается только в том случае, если пользователь проверит
Похожие товары
Смотреть все
Хит продаж
WordPress
Хит продаж
WordPress