Умный способ управления историей браузера

Я пытаюсь реализовать приличную навигацию в приложении AJAX. Сейчас я делаю следующее:

  • Каждый раз, когда пользователь щелкает ссылку AJAX, выполняется соответствующий вызов и изменяется хэш.
  • Каждый раз, когда загружается новая страница, я проверяю, присутствует ли хэш и выполните соответствующий вызов AJAX для обновления страницы. Это гарантирует, что закладки будут работать должным образом.
  • Каждые 500 мс я проверяю, изменен ли хэш, и выполняю соответствующий вызов AJAX. Это позаботится о том, чтобы пользователи нажимали кнопки назад / вперед, хотя и с небольшой задержкой.

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

Есть ли лучший способ справиться с этим? Не могу придумать никаких альтернатив, но, возможно, я что-то упускаю.

Пожалуйста, не указывайте мне на готовые решения, если вы не знаете, что они основаны на другом механизме.

5
задан pnuts 26 November 2015 в 14:09
поделиться