Как кешировать history.back как Safari в других браузерах? - PullRequest
1 голос
/ 27 сентября 2011

хочу

history.back ()

для кэширования, как это делает Safari.

Но этого не происходит в других браузерах

Как я могу реализовать сафари как кэш history.back () в других браузерах?

1 Ответ

0 голосов
/ 07 октября 2011

Вы можете кэшировать ресурсы страницы в localStorage, но большинство современных браузеров уже делают нечто подобное (и лучше). Несмотря на этот собственный кеш браузера, код, сгенерированный из этих ресурсов, требует времени для расчета и применения. Вы можете немного помочь браузеру в структурировании страниц вашего сайта следующим образом:

<script>
    if(!localStorage[location.pathname]) {
        //load this page from server
        localStorage[location.pathname] = getGeneratedPage();
    } else {
        body.innerHTML = parseGeneratedPage(localStorage[location.pathname]);
    }    
</script>

Это просто ОЧЕНЬ общий пример. GetGeneratedPage может быть функцией, которая хранит ТОЛЬКО:

  • Дерево DOM после загрузки страницы
  • Правила CSS, соответствующие этой странице
  • JS-функции, у которых есть хотя бы один слушатель
  • Base64 изображения (рекомендуется только для небольших изображений или предварительного просмотра больших изображений)
  • и т.д.

Кроме того, вы можете сделать эту версию на стороне сервера или что-то вроде Opera Turbo . Ну, есть бесчисленное множество способов заставить вашу страницу загрузиться в мгновение ока. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...