от
Я пишу приложения AJAX, но как пользователь перемещается через приложение, я бы хотел, URL-адрес в адресной строке, чтобы обновить, несмотря на отсутствие перезагрузок страницы. В принципе, я хотел бы для них, чтобы иметь возможность делать закладки в любой момент и тем самым вернуться к текущему состоянию. Как для людей, занимающихся поддержание успокоение в AJAX-приложениях?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

9 Ответы

0 голосов
от
Я пишу приложения AJAX, но как пользователь перемещается через приложение, я бы хотел, URL-адрес в адресной строке, чтобы обновить, несмотря на отсутствие перезагрузок страницы. В принципе, я хотел бы для них, чтобы иметь возможность делать закладки в любой момент и тем самым вернуться к текущему состоянию. Как для людей, занимающихся поддержание успокоение в AJAX-приложениях?
0 голосов
от
Способ сделать это, чтобы манипулировать
location.hash
, когда обновления Аякса в результате изменения состояния, которое вы хотели бы иметь сдержанный URL-адрес. Например, если URL-адрес вашей страницы: на HTTP://example.com/ Если функцию на стороне клиента выполняется этот код:
// AJAX code to display the "foo" state goes here.

location.hash = 'foo';
Затем, URL-адрес отображается в браузере будет равна: на HTTP://example.com/#foo Это позволяет пользователям закладка "фу" состояние страницы и использовать историю браузера для навигации между государствами. С помощью этого механизма, вы тогда должны будете разобрать хэш-часть URL-адреса на стороне клиента с помощью JavaScript, чтобы создать и отобразить соответствующее начальное состояние, как идентификаторы фрагментов (часть после #) не отправляется на сервер. Плагин hashchange Бен Алман делает последний ветерок, если ты с помощью jQuery.
0 голосов
от
Посмотрите на сайты, такие как book.cakephp.org. Этот сайт изменяет URL-адрес без использования хэш и использовать AJAX. Я не знаю, как она делает это точно, но я пытаюсь это выяснить. Если кто знает, дайте мне знать. Также github.com когда смотришь на плавающих в пределах определенного проекта.
0 голосов
от
Вряд ли писатель хочет обновить или перенаправить посетителя при использовании технологии Ajax. Но почему бы не использовать HTML5 в
pushState
/
replaceState
? Вы сможете изменить адресной строки так, как вам нравится. Получить URL-адресов естественный вид с помощью AJAX. Проверьте код на мой последний проект: http://iesus.se/
0 голосов
от
Это похоже на то, что сказал Кевин. Вы можете иметь ваше состояние клиента, как некоторые JavaScript-объект, и когда вы хотите сохранить состояние, вы сериализовать объект (используя JSON и кодировка base64). Затем вы можете установить фрагмент href в эту строку.
var encodedState = base64(json(state));
var newLocation = oldLocationWithoutFragment   "#"   encodedState;

document.location = newLocation; // adds new entry in browser history
document.location.replace(newLocation); // replaces current entry in browser history
Первый способ, будет рассматривать новое состояние как новое место (так кнопку Назад возьмет их на прежнем месте). Последнее не.
0 голосов
от
SWFAddress работает в Флэш
0 голосов
от
Окна.расположение.хэш-метод является предпочтительным способом ведения дел. Для объяснения, как это сделать, Шаблоны Аякс - Уникальные URL-Адреса. Юи и реализация этой модели в виде модуля, который включает в себя конкретные т. е. способы работы для получения кнопка Назад работает вместе с переписывания адрес, используя хэш. Юи Диспетчере историю браузера. Другие платформы имеют сходные реализации, а также. Важным моментом является, если вы хотите историю, чтобы работать вместе с переписывание адрес разных браузеров нужны разные способы его обработки. (Это подробно описано в первой статье по ссылке.) Т. е. должен в iframe на основе рубить, где Firefox будет произвести двойную историю, используя тот же метод.
0 голосов
от
Если ОП или другие все еще ищу способ изменить историю браузера, чтобы государство, используя pushState и replaceState, как полагают Иесус, это "правильный" способ сделать это сейчас. Это основное преимущество перед расположение.хэш-кажется, что он создает фактический URL-адреса, а не только хэши. Если историю браузера, используя хеши сохранены, а затем повторно с JavaScript отключен, то приложение не будет работать, так как хэши не отправляется на сервер. Однако, если pushState использовался, весь маршрут будет отправлен на сервер, который затем вы можете построить, чтобы адекватно реагировать на маршруты. Я видел пример, когда одни и те же шаблоны усы были использованы на оба сервера и на стороне клиента. Если клиент включен JavaScript, он будет получать мгновенные ответы, избегая обращения к серверу, но приложение будет работать прекрасно без яваскрипта. Таким образом, приложение может ухудшить изящно при отсутствии на JavaScript. Кроме того, я считаю, что есть какие-то рамки там, с таким именем history.js. Для браузеров, которые поддерживают HTML5, он использует pushState, но если браузер не поддерживает это, он автоматически возвращается к использованию хэшей.
0 голосов
от
Проверить, если пользователь " в " страницу, при нажатии на адресную строку, JavaScript и говорит Вы из страницы. Если вы изменить адресную строку и нажмите "Enter" с символом '#' в нем затем вы перейдете на страницу снова, без кнопку на странице вручную с помощью курсора мыши, выберите команду событие keyboad (документ.метода onkeypress) из JavaScript будет иметь возможность проверить, если это ввести и активировать JavaScript для перенаправления. Вы можете проверить, если пользователь находится на странице с окном.onfocus и проверить, если он вышел с окном.onblur. Да, это возможно. ;)
...