Нужно ли изменять все ссылки, чтобы изменить этот сайт? - PullRequest
0 голосов
/ 13 февраля 2010

Я создал этот сайт , используя ajax (через jquery) вместо полного обновления страницы. В данный момент он не поддерживает кнопки браузера «назад» / «вперед» и закладки диплинков. Я хотел бы реализовать эти функции, используя, например, плагин jquery bbq , но я не уверен, что полностью понимаю эту концепцию.

Главное, чего мне не хватает, это то, что мне нужно изменить все мои ссылки?

Например, возьмите этот URL:

http://example.com/projects/title-of-project/visuals/video/

Мое приложение конвертирует URL в эти переменные:

section = projects
item= title-of-project
content=visuals
id=video

Сценарий php определяет, является ли это ajax-вызовом (таким образом, возвращает только html видео) или не ajax-вызовом (таким образом, возвращает html полной страницы с видео-кодом внутри).

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

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

1 Ответ

3 голосов
/ 13 февраля 2010

По сути, хеш-постоянные работают так:

  1. Пользователь нажимает на ссылку, которая вызывает AJAX-вызов на другой URL-адрес.
  2. Событие click сообщает управляющему историей коду (например, плагину BBQ) обновить хэш, часть URL после символа фунта (#).
  3. Код управления историей гарантирует, что когда пользователь нажимает кнопку «Назад» или «Вперед», хэш браузера переходит в свое последнее или следующее состояние.
  4. Код управления историей запускает событие, когда он думает, что хэш изменился.
  5. Ваше приложение реагирует на событие и определяет, с какого нового URL-адреса получать содержимое, используя хеш-код браузера.

Например, допустим, что ссылка на вашем сайте использует AJAX для загрузки контента с http://example.com/some/path. Когда пользователь щелкает ссылку, URL-адрес браузера может быть http://yoursite.com/#some/path. При нажатии другой ссылки хэш может измениться на #some/other/path. Когда пользователь нажимает кнопку «Назад», хэш должен быть возвращен в #some/path. Затем ваше приложение получит текущий хеш, а затем использует AJAX для загрузки http://example.com/some/path соответственно.

Таким образом, URL-адреса, с которых AJAX получает контент, не должны изменяться. Имеет ли это смысл? Возможно, я неправильно понял ваш вопрос.

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