AJAX - обновить содержимое div - возвращаться назад? - PullRequest
1 голос
/ 18 августа 2011

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

Одна проблема, которую я обнаружил при тестировании, заключается в том, что если я использую обратную ссылку (которая вызывает JavaScript:history.go(-1);), как без текущего инструмента, она не работает.В нашей предыдущей системе такие ссылки ведут на предыдущую страницу (там, где она существовала).

В тестовой системе я обновляю содержимое div с помощью jQuerys ajax.

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

Ответы [ 2 ]

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

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

Короче говоря, вы используете параметры страницы дляуправлять содержимым, отображаемым на странице, однако изменение значений адресной строки приведет к перезагрузке страницы, так как это работает?Просто, вы можете изменить любое значение после #, и браузер не перезагрузит страницу.Затем ваш javascript просто читает значение после #, чтобы определить содержание страницы. Вот хорошая статья об этом. .

Мне было интересно, как это делает gmail, и, анализируя их страницу, кажется, что они используют iframe s.Преимущество iframes заключается в том, что они могут придать вашему сайту внешний вид ajax, не будучи на самом деле таковым, и я полагаю, что ответный удар по браузеру просто наносит ответный удар по iframe.Я давно не делал ничего подобного, поэтому не могу быть уверен на 100%.

Надеюсь, это поможет.Ни один человек здесь не сможет дать вам 100% работающее решение (насколько мне известно), природа приложений ajax такова, что решение также должно быть индивидуальным.

0 голосов
/ 18 августа 2011

Обратная ссылка не будет работать, поскольку вы не загружаете всю страницу (URL-адрес не изменяется), но это очевидно.

Попробуйте сохранить историю пользователя в javascript-cookie, а затем просто загрузить страницу, перечисленную на одну единицу выше. Таким образом, нажатие кнопки «назад» также не позволит вернуться на страницу, которую они просматривали ранее, что делает javascript: history.back ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...