Reply to this topicStart new topic
> При връщане, без зареждане на цялата страница.
x7hund3rxbg
публикация 28.01.2013г. в 00:45ч.
Коментар: #1


Новак
*

Група: Потребители
Съобщения: 2
Дата на регистрация: 28.01.2013г.
Потребител # 23 037





Та имам един уебсайт. Той е за обяви и мисълта ми е, когато някой потребител си хареса обява и цъкне на нея да види подробното й описание, разгледа я и след това даде бутона "Назад" горе в браузъра, да го отведе до там, където е стигнал. А не да зарежда цялата страницата на ново. Ако не разбирате какво имам в предвид в cars.bg(не е реклама) са го направили по този начин... Ако това е в тайна как се прави, поне ми кажете как може да стана тая работа... Благодаря Ви предварително! Smile
Go to the top of the page
 
+Quote Post
fakeuser
публикация 28.01.2013г. в 03:25ч.
Коментар: #2


Доктор - уроци
******

Група: Потребители
Съобщения: 836
Дата на регистрация: 15.11.2008г.
Потребител # 6 111




Доколкото помня, нарича се hashtag навигация. Изгражда се посредством JavaScript и асинхронни извиквания на скриптовете на сървъра. Правил съм го в сайта си за генериране на QR кодове, ако искаш разгледай му сорса (използвал съм библиотеката jQuery). Иначе като цяло беше нещо такова:
  • На всички линкове им казваш да не използват стандартното си поведение (да пренасочват браузера към друга страница) ами да извикват някаква функция, която да се занимава със съдържанието, което трябва да се покаже.
  • При натискане на линк трябва да смениш адреса на ръка. Става така:
    КОД
    var hash = "home";
    window.history.pushState(hash, "Заглавна страница. Т.е. заглавието, което да се появи в History На браузера", "/" + hash);

    Първия аргумент е уникален обект (ключ). Аз използвам String за по-лесно. Втория аргумент е заглавието на страницата. Третия е местоположението, което задава линка. Можеш да задаваш само адреси, които са част от основния (не може да зададеш адрес на чужд сайт, нито поддомейн на собствения). Преди ограничението беше само хешове от типа site.com/#hash
  • Дотук добре, но е нужно и да реагираш правилно при натискане на бутоните back и forward. За целта се абонираш за събития:
    КОД
    window.onpopstate = historyChanged;
  • където historyChanged е дефинирана от нас функция. Например:
    КОД
    function historyChanged(event)
    {
        var hash = event.state;
            // Тук в зависимост от хеша се показва подходящо съдържание
        document.title = getTitle(hash); // където getTitle е наша функция. Връща подходящо заглавие
    }


Важно за подобна навигация е да не забравяш, че макар и лесно да се забравя, възможно е потребителя да няма JS или да не го поддържа (примерно ако имаш мобилни потребители, не всички браузери се справят добре). За това е хубаво навигацията да работи като хората и без JS (т.е. със стандартно пренасочване на страниците и сесии).

П.с. за посочения сайт не гарантирам че ползва това, защото не съм гледал. Има и други технологии (и библиотеки), но винаги става посредством JS. Ако този вариант не ти харесва - smartClient, Echo, GoogleWebToolkit си имат свои решения.
Go to the top of the page
 
+Quote Post
x7hund3rxbg
публикация 28.01.2013г. в 13:23ч.
Коментар: #3


Новак
*

Група: Потребители
Съобщения: 2
Дата на регистрация: 28.01.2013г.
Потребител # 23 037




Мерси за обяснението. biggrin.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

 

RSS Олекотена Версия Сега е: 04:53 - 25.08.2026г.

Калдейта Ком ЕООД - © 2003-. Всички права запазени.