У меня есть решения для поиска моей проблемы, и хотя я близок к тому, чего я хочу достичь, у меня все еще нет постоянного результата.
Вот моя проблема: я хочу, чтобы браузер действительно выполнить перенаправление на указанной странице c, когда пользователь нажимает кнопку браузера назад, или выполнить реальную ссылку sh на страницу, к которой он возвращается в истории. Использование кэшированной в браузере версии этой страницы приводит к ошибкам, поскольку некоторые данные не обновляются должным образом.
Это то, что я получил на данный момент (особенно на основе { ссылка }):
if (window.history && window.history.pushState) {
window.addEventListener('popstate', function() {
window.location.href= "/page/I/want/to/force/a/refresh/of";
return false;
});
window.history.pushState('', null);
}
Это работает большую часть времени ... но не всегда. Иногда это просто не сработает, и я до сих пор не понимаю, почему именно.
Если честно, так как приведенное выше решение для работы со стеком не дает объяснения, я точно не понимаю, что именно оно делает. Я читал об API истории, а также о «popstate», но я не понимаю, почему нам нужно выполнить метод «pushtate» перед тем, как оставить условие (я оставил параметры пустыми, так как они не кажутся в моем случае), а также почему функция события popstate должна что-то возвращать.
Я уверен, что мое непонимание объясняет, почему мой код не работает постоянно.
Не могли бы вы немного просветить меня? Не стесняйтесь предложить другой вариант, если это не правильный способ достичь того, что я ищу.
Спасибо!