Добавки за история (използване на история на jQuery или AJAX като цяло)

АКТУАЛИЗИРАН Въпрос: 19.05.11 ЗАБЕЛЕЖКА: за напълно начинаещи като мен - първо погледнете това, за да видите дали помага, намирам го за много полезно!

  1. Приставка за история на jQuery
  2. http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/

Оригинален въпрос:

Аз съм относително неопитен в уеб дизайна, но работя върху внедряването на решение за история на моя нов уебсайт.

Забележка: Сега разгледах решенията във връзката по-горе - jQuery.History @ http://tkyk.github.com/jquery-history-plugin/ изглежда работи за мен, но има много опции!

Прочетох малко, получих добра информация по-долу (благодаря!) и сега донякъде разбирам мотивите, към които T9b се отнася по-долу; не можете да отговорите на първоначалния ми въпрос - това вече има някакъв смисъл.

Като цяло: има история на страниците и история на елементите, както сега ги разбирам.

Оригинален въпрос №1: пример: Исках да заредя PageA.html, #divA1 вместо цялата PageA.html в моя #content div на моята главна страница и да използвам историческо решение.

  • не можете да направите това, защото смесвате История на страници (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(/^.*#/, ''); за отразяване на конкретна див. Отново не е наистина добър въпрос, но се надявам, че това има малко повече смисъл от първоначалния ми пост? - 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