как я могу запретить браузерам ios использовать кеш flu sh, когда кнопка «назад» нажимает, не перезагружая страницу дважды - PullRequest
0 голосов
/ 27 февраля 2020

Я использую ruby на рельсах и когда я go на страницу, а затем нажимаю кнопку "Назад" в любом браузере на iPhone 6 / и выше и ios 12 выше большинства стилей CSS. не работает должным образом, например, полоса прокрутки в разделе новостей и фоновое изображение слайда и многое другое, я попробовал много способов, чтобы запретить сафари использовать кэш flu sh в ruby на рельсах, как показано ниже

  if Rails.root.join('tmp', 'caching-dev.txt').exist?
    config.action_controller.perform_caching = true

    config.cache_store = :memory_store
    config.public_file_server.headers = {
      'Cache-Control' => "public, max-age=#{2.days.to_i}"
    }
  else
    config.action_controller.perform_caching = false

    config.cache_store = :null_store
  end

и в js

(function () {
    window.onpageshow = function(event) {
        if (event.persisted) {
            window.location.reload();
        }
    };
})();

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

if (!!window.performance && window.performance.navigation.type === 2) {
  // value 2 means "The page was accessed by navigating into the history"
  window.location.reload(); // reload whole page
  // $('link').attr('src', function (i, val) { return val; }); // reload only iframes
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...