Плагины истории (использование истории jQuery или AJAX в целом)

ОБНОВЛЕНО Вопрос: 19.05.11 ПРИМЕЧАНИЕ: для полных новичков, таких как я, сначала взгляните на это, чтобы увидеть, поможет ли это, я нашел это очень полезным!

  1. Подключаемый модуль истории jQuery
  2. http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/

Исходный вопрос:

У меня относительно мало опыта в веб-дизайне, но я работаю над внедрением решения History на моем новом веб-сайте.

Примечание. Теперь я просмотрел решения по ссылке выше — jQuery.History @ http://tkyk.github.com/jquery-history-plugin/, кажется, работает для меня, но есть много вариантов!

Я кое-что прочитал, получил хороший вклад ниже (спасибо!), и теперь вроде понимаю рассуждения, на которые ссылается T9b ниже; вы не можете ответить на мой первоначальный вопрос - теперь это имеет смысл.

В общем: есть история страниц, и история элементов, как я теперь понимаю.

Исходный вопрос №1: пример: я хотел загрузить PageA.html, #divA1 вместо всего PageA.html в раздел #content на моей главной странице и использовать решение истории.

  • это невозможно, потому что вы смешиваете историю страниц (PageA.html) и историю элементов (#divA1).

Ответ №1: если я хочу использовать решение "история" (назад, вперед, закладки и т. д.), мне фактически придется создать отдельный (новый ) файл divA1.html — основное требование к способу работы решения типа истории.


Вопрос №2:

Я начал смотреть на некоторые пункты в ответе ниже - Сессии, вероятно, будут для меня слишком сложными, извините. Так

  • есть ли ссылка на пример настройки массива индексов в javascript специально для приложения типа истории, как предложено ниже?
  • Понимание (это не будет хранить информацию, если браузер будет обновлен или добавлен в закладки, что я считаю правильным?)
  • Но позволит ли это вернуться назад, вперед для пользователя, когда он перемещается по странице, скажем, с несколькими контентами, загружаемыми из скрытых div на странице?: (если они не обновляют страницу и т. д., что я думаю, что T9b ниже написано?)

Еще раз, спасибо за ваше терпение - я уверен, что это не самые умные вопросы, но я буду продолжать читать и т. д... и пытаться стать лучше, ценю всю помощь до сих пор!


person TPo    schedule 18.05.2011    source источник
comment
ОБНОВЛЕНИЕ: отличный вопрос ниже, я не думал об этом.   -  person TPo    schedule 18.05.2011
comment
Формат вопросов и ответов - это именно то, для чего предназначен SO, поэтому вместо того, чтобы изменять свой вопрос и добавлять на него ответ, просто ответьте на свой вопрос. Для вопроса №2 - просто откройте новый вопрос. Вы получите больше ответов на короткие и приятные вопросы. Удачи.   -  person Andriy Drozdyuk    schedule 11.04.2012


Ответы (2)


Если я вас правильно понял - вы загружаете другую страницу своего сайта в прокручиваемый div (например, вместо использования iframe?) и хотите знать историю этих загрузок, чтобы можно было свободно перемещаться вперед и назад, например вы бы делали в браузере? Но у вас проблемы с плагином .history(), потому что он работает только со страницей в целом, а не с содержимым div.

Право. Если я правильно понял это, то я думаю, что лучше всего было бы сначала просто сохранить историю в массиве с индексом и переменной, а затем использовать индекс, чтобы определить, где вы сейчас находитесь, по сравнению с тем, где вы были в последний раз. Но это зависит от того, как долго вы хотите сделать историю доступной. Он будет потерян, как только вы обновите страницу или покинете сайт.

Если вы хотите, чтобы он сохранялся дольше, вам также придется изучить хранение истории на сервере, возможно, с использованием сеансов.

Не совсем понятно, что вы пытаетесь сделать, и я, возможно, совершенно неправильно понял!

person T9b    schedule 18.05.2011
comment
хороший вопрос. В частности, функция истории приемлема в отношении обновления и т. д., и я мало знаю о веб-серверах, поэтому: можно ли настроить функцию истории, чтобы указать такой div - $('#content').load(num +.html); изменить на $('#content').load(num + #somediv + .html); чтобы он нацеливался на div на конкретной странице? Не уверен, что это лучше вопроса, извините? - person TPo; 18.05.2011
comment
возможно, я думаю, можно ли настроить эту часть url = url.replace(/^.*#/, ''); для отражения определенного div. Опять же, не очень хороший вопрос, но, надеюсь, это имеет немного больше смысла, чем мой первоначальный пост? - person TPo; 18.05.2011
comment
Имеет ли это больше смысла, чем ваш оригинальный пост? Нет. Ничего из этого не имеет для меня смысла. Ни одно из ваших решений, связанных с объединением некоторого числа и расширения .HTML, не будет работать, если только число не является заголовком загружаемой страницы. Я думаю, вы смешиваете две концепции: 1) историю навигации по страницам и 2) историю содержимого элемента. Ваше требование состоит в том, чтобы иметь дело с историей содержимого элемента, а не с историей страницы. Плагин .history() работает с историей страницы, а НЕ с историей элементов! Я подозреваю, что именно поэтому вы не можете заставить его работать, и поэтому я предложил javascript. - person T9b; 19.05.2011
comment
Спасибо за вашу помощь до сих пор - действительно ценю это: немного обновил вопрос, чтобы отразить то, что я узнал до сих пор. - person TPo; 19.05.2011

Общее введение см. в этом руководстве по Html5 History API: http://diveintohtml5.info/history.html.

Html5 позволяет модифицировать «настоящую» историю, т.е. вам не нужно полагаться на хеш-теги. Он не совместим со всеми версиями всех браузеров, поэтому вам может понадобиться HistoryJS ( который является преемником плагина истории jQuery)

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

person Andriy Drozdyuk    schedule 11.04.2012