AJAX и кнопка возврата - PullRequest
       6

AJAX и кнопка возврата

2 голосов
/ 24 августа 2011

Как я могу сохранить историю с AJAX, как это делают github или google +. Я использую jQuery, и я не хочу использовать какой-нибудь хак, такой как # и #! уловки, потому что если я сделаю это, мне нужно будет изменить весь мой проект и сделать мою жизнь намного более сложной?

Ответы [ 3 ]

5 голосов
/ 24 августа 2011

Есть два основных варианта, когда речь заходит об AJAX и истории.

  1. Метод # (кстати, это не хак). Так как вы не хотите этого, у вас есть только вариант 2.

  2. Используйте PushState. Это то, что используют Facebook, GitHub и несколько других. Это поддерживается не всеми браузерами, и если вам нужна полная кросс-браузерная совместимость, вам придется использовать систему, которая может перейти на вариант 1.

Очень простой способ реализовать это - класс маршрутизатора Backbone.js.

5 голосов
/ 24 августа 2011

Github и Google+ используют history.pushState.

Вы можете изменить текущий URL следующим образом:

history.pushState(null, null, '/the-new-url');

Это поддерживается Firefox, Chrome,Опера, Сафари;не IE.

См. https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState%28%29.c2.a0method

1 голос
/ 24 августа 2011

Существует простой плагин jQuery hashchange , предназначенный для решения этой конкретной проблемы.

Я не использовал его; Я не знаю, как он отслеживает историю URL.

...