Дополнительно
Измените URL строки поиска в приложении AJAX, чтобы соответствовать текущему состоянию
I' m написание приложения AJAX, но поскольку пользователь двигается через приложение, I' d как URL в строке поиска, чтобы обновить несмотря на отсутствие страницы перезагружает. В основном, I' d как для них, чтобы быть в состоянии отметить в любом пункте и таким образом возвратиться к текущему состоянию.
Как люди обращаются с УСПОКОИТЕЛЬНОСТЬЮ поддержания в приложениях AJAX?
164
8
Способ сделать это должно управлять 'location.hash', когда AJAX обновляет результат в государственном изменении это you' d нравится иметь осторожный URL. Например, если Ваш page' s URL:
Если функция стороны клиента выполнила этот код:
Затем URL, показанный в браузере, был бы обновлен к:
Это позволяет пользователям отмечать " foo" государство страницы и использование история браузера, чтобы провести между государствами.
С этим механизмом на месте, you' ll тогда должен разобрать часть мешанины URL на стороне клиента, используя JavaScript, чтобы создать и показать соответствующее начальное состояние, поскольку идентификаторы фрагмента (часть после #) не посылают в сервер.
Бен Alman' s hashchange плагин делает последнего бризом если you' ре используя jQuery.
Взгляд на места как book.cakephp.org. Это место изменяет URL, не используя мешанину и использование AJAX. I' m не уверенный, как это делает это точно, но I' ve, пытаясь понять его. Если кто-либо знает, сообщить мне.
Также github.com, смотря на навигацию в рамках определенного проекта.
Маловероятно, что писатель хочет перезагрузить или перенаправить его посетителя, используя Аякса. Но почему бы не использовать HTML5' s 'pushState'/'replaceState'?
You' ll быть в состоянии изменить addressbar так, как Вам нравится. [Получите естественно выглядящие URL с AJAX.] (https://www.w3.org/TR/2010/WD-html5-20100624/history.html#history)
Проверьте кодекс по моему последнему проекту: http://iesus.se/
Это подобно тому, что сказал Кевин. Вы можете сделать, чтобы Ваш клиент заявил как некоторый объект JavaScript, и когда Вы хотите спасти государство, Вы преобразовываете в последовательную форму объект (использующий JSON и кодирование base64). Вы можете тогда установить фрагмент href к этой последовательности.
Первый путь будет рассматривать новое государство как новое местоположение (таким образом, кнопка «Назад» возьмет их к предыдущему местоположению). Последний не делает.
Если OP или другие все еще ищут способ сделать, изменяют историю браузера, чтобы позволить государство, используя pushState, и replaceState, как предложено IESUS, является ' right' способ сделать это теперь. It' s главное преимущество перед location.hash, кажется, что это создает фактические URL, не просто крошит. Если история браузера, используя мешанины сохранена, и затем пересмотрена с отключенным JavaScript, приложение won' t работа, так как мешанины - not' t посланный в сервер. Однако, если pushState использовался, весь маршрут пошлют в сервер, который Вы можете тогда построить, чтобы соответственно ответить на маршруты. Я видел пример, где те же шаблоны усов использовались и на сервере и на стороне клиента. Если бы клиенту активировали JavaScript, он получил бы мгновенные ответы, избежав поездки туда и обратно к серверу, но приложение будет работать превосходное без JavaScript. Таким образом приложение может изящно ухудшиться в отсутствие JavaScript.
Кроме того, я полагаю, что есть некоторая структура там с именем как history.js. Для браузеров, которые поддерживают HTML5, он использует pushState, но если браузер doesn' t поддержка, что, это автоматически отступает к использованию мешанин.
SWFAddress работает во Вспышке & проекты JavaScript и позволяют Вам создать bookmarkable URL (использующий упомянутый выше метод мешанины), а также дающий Вам поддержка кнопки «Назад».
http://www.asual.com/swfaddress/
window.location.hash метод - предпочтительный способ сделать вещи. Для объяснения того, как сделать это, [Аякс Копирует - Уникальные URL] (http://ajaxpatterns.org/Unique_URLs).
У YUI есть внедрение этого образца как модуль, который включает IE определенная работа arounds для получения кнопки «Назад», работающей наряду с переписыванием адреса, используя мешанину. [Менеджер по Истории Браузера YUI] (http://developer.yahoo.com/yui/history/).
У других структур есть подобные внедрения также. Важный момент - то, если Вы хотите, чтобы история работала наряду с переписыванием адреса, различным браузерам нужны различные способы обращаться с ним. (Это детализировано в первой статье ссылки.)
IE нужен iframe базирующееся хакерское проникновение, где Firefox напишет двойную историю, используя тот же метод.
Проверьте, является ли пользователь ' in' страница, когда Вы нажимаете на бар URL, JavaScript, говорит, что Вы вне страницы. Если Вы изменяете бар URL и нажимаете ' ENTER' с символом ' #' в нем тогда Вы входите в страницу снова, без нажимают на страницу вручную с курсором мыши, затем keyboad команда событий (document.onkeypress) из JavaScript будет в состоянии проверить если it' s входят и активный JavaScript для переназначения. Вы можете проверить, находится ли пользователь НА странице с window.onfocus, и проверьте если he' s с window.onblur.
Да, it' s возможный.
;)