Ссылки на URL AJAX - PullRequest
       7

Ссылки на URL AJAX

3 голосов
/ 05 января 2010

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

Я смотрел на Facebook, и они используют привязку для URL, который запрашивался после исходного URL, например: http://www.facebook.com/#/somepage (если вы были на домашней странице и перешли на somepage, и это AJAX запрос).

Установка привязки к URL не будет проблемой вообще, так как я все равно использую теги <a> для всего моего AJAX, но как я смогу заставить mysite.come/#/some-ajax-page/ работать правильно и отображать, что some-ajax-page должен быть, а не просто пытаться найти якорь с именем /some-ajax-page/ в DOM?

P.S. Я использую jQuery для своей серверной части JS и Django

Ответы [ 3 ]

4 голосов
/ 05 января 2010

Вы можете ссылаться на URL текущей страницы, используя объект document.location.Это не стандартно, но, тем не менее, все браузеры, которые я знаю, поддерживают его.Свойство hash этого объекта дает вам часть за знаком хеша.

Итак, в вашей функции jquery .ready вы можете проверить document.location.hash (для вашего примера url http://www.facebook.com/#/somepage, который оценивается как /somepage) и интерпретировать его, чтобы сделать все необходимое для воссоздания соответствующейсостояние вашей страницы.Какая логика вам нужна здесь, конечно, зависит от вас - мы не можем понять, какие состояния могут иметь ваши страницы, и как вы хотите представить их в тексте привязки.

Для получения дополнительной информации см.документация Mozilla о местонахождении объекта.AFAIK все браузеры поддерживают эти свойства: https://developer.mozilla.org/en/DOM/window.location

1 голос
/ 05 января 2010

Проверить jQuery BBQ . Недавно мы использовали что-то похожее в проекте, и это было довольно красиво.

Основная идея заключается в том, чтобы прослушивать изменения в хеш-функции и запускать функции (т.е. извлекать новую страницу через ajax) на основе хеш-функции.

0 голосов
/ 05 января 2010

Просто получите фрагмент с запрошенного URL-адреса (для этого вам может понадобиться request.get_full_path()), а затем правильно создайте свою страницу на сервере.

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