Использование истории HTML5 для полноценной навигации AJAX - PullRequest
0 голосов
/ 21 марта 2012

Я хотел бы использовать функцию window.history в HTML5 для реализации полной навигации AJAX на моем веб-сайте. Я нашел демоверсию , которая показывает реализацию window.history, в результате чего некоторый контент передается в историю, которая может быть отозвана и отображена в текстовой области. Я хотел бы следовать и расширить этот подход:

  • изменение всего содержимого страницы с помощью AJAX при нажатии на ссылки.
  • перед загрузкой нового содержимого сохраните все содержимое страницы в истории по текущему URL.
  • загрузить новый контент, изменить URL и сохранить новый контент в истории.

Таким образом, когда пользователь нажимает кнопки браузера предыдущий и следующий , содержимое страницы будет соответственно обновляться без какого-либо запуска HTTP-запроса, предоставляя пользователю очень плавный AJAX опыт.

В: Можете ли вы предвидеть потенциальные проблемы с использованием такого подхода? (Я особенно думаю о памяти браузера, поскольку я сохраняю целые страницы в истории)

1 Ответ

1 голос
/ 21 марта 2012

Я бы лично предостерег от этого, потому что ты изобретаешь колесо.Я видел много людей, которые пробовали что-то подобное, и немногие когда-либо работали хорошо.Тем не менее, вот несколько вещей, которые следует учитывать:

  • Да, память будет расти, но в зависимости от ширины сайта и сложности исходного кода, вы, вероятно, будете в порядке.1005 * Ваш сайт по-прежнему должен быть полностью функциональным без Javascript или AJAX-вызовов.Вы должны всегда генерировать URL, которые в конечном итоге будут загружать правильную страницу, чтобы пользователь мог правильно скопировать + вставить ссылку.(Это - то, где много решений для домашнего пивоварения сбиваются с толку.)
  • Используйте Modernizr для проверки поддержки History, так что в старых браузерах (IE8) вы не будете ломать голову
...