Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 7.767 pregleda

Najnovija ↓

URL adresa kod ajax poziva 27.04.2016. u 09:48 · pre 128 meseci #1
Zna li neko kako da updatujem URL adresu kod AJAX poziva?

Da objasnim: napravio sam nešto nalik Bazi Znanja, na stranici postoje dva diva, u levom je drvo sa kategorijama i tekstovima a u desnom divu se učitava sadržaj preko AJAX poziva. I to sve dobro radi. Samo mi se ne sviđa što se URL ne menja. Ako neko hoće da sačuva link nekog teksta, ne može, ili ako hoće da klikne na Back dugme, ne daje očekivani rezultat.

Sa druge strane, ne bih da koristim klasične linkove jer se onda učitava cela strana svaki put.

Evo ovako nešto bih hteo da postignem: http://docs.sencha.com/extjs/6...g_started/getting_started.html
Re: URL adresa kod ajax poziva 27.04.2016. u 10:54 · pre 128 meseci #3
Kao što ti je Nemanja napisao, al' bih dodao još jednu stvar ...
Na serveru, prvi put, moraš ipak da gledaš i URL da bi odmah učitao
desni div sa odgovarajućim content-om na osnovu URL-a.
Re: URL adresa kod ajax poziva 27.04.2016. u 11:00 · pre 128 meseci #4
Da, verujem da nema mnogo veze sa PHP-om, samo sam ja radio projekat u PHP-u pa sam ovde napisao.

Video sam da se na netu spominje ta pushState funkcija ali kažu da je to nešto novo, da ne radi sa starijim brauzerima pa sam mislio da ima neko drugo rešenje. Znači, osim toga nema drugih rešenja? Kako se to postizalo ranije pre html 5?
Re: URL adresa kod ajax poziva 27.04.2016. u 11:01 · pre 128 meseci #5
Mislim da se nije postizalo, pošto nije bilo moguće menjati url bez reloada,
pada mi na pamet neka skalamerija sa hash-om.

Mislim da je ipak čistije rešenje da se koristi history.pushState tamo gde može
a tamo gde ne može fallback-ovati na full page reload.
Re: URL adresa kod ajax poziva 27.04.2016. u 12:58 · pre 128 meseci #6
Citat:
dusans: pada mi na pamet neka skalamerija sa hash-om.

Upravo to, samo nije nikakava skalamerija :)

Ima bas i ne linku koji je Nemanja dao deo koji kaze:
Citat:
In a sense, calling pushState() is similar to setting window.location = "#foo", in that both will also create and activate another history entry associated with the current document


Uz, naravno, i razlike:
Citat:

The new URL can be any URL in the same origin as the current URL. In contrast, setting window.location keeps you at the same document only if you modify only the hash.
You don't have to change the URL if you don't want to. In contrast, setting window.location = "#foo"; only creates a new history entry if the current hash isn't #foo.
You can associate arbitrary data with your new history entry. With the hash-based approach, you need to encode all of the relevant data into a short string.
If title is subsequently used by browsers, this data can be utilized (independent of, say, the hash).
Note that pushState() never causes a hashchange event to be fired, even if the new URL differs from the old URL only in its hash.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: URL adresa kod ajax poziva 27.04.2016. u 13:22 · pre 128 meseci #7
Najbolji način (po meni) jeste pozivati ajax na osnovu hash vrednosti.. u slučaju gde browser history igra bitnu ulogu. Tačnije kroz window.onhashchange event.
Dakle, jedan prost event listener ...

Code (javascript):

window.onhashchange=function()
{
     // Ajax method + what else not here..
     // or ..
     // Ajax method with callback func. + what else not here...
     // - just! .. Right before ajax call. :)
};
 


.. ako ne želiš da koristiš history.pushState jer browseri, svi normalni i up-to-date, reaguju na history back/forward dugmiće kada ima hash promene.

Drugim rečima.

http://website.com/some_page


jeste jedna bookmark friendly stranica.

A ovo bi bila ...

http://website.com/some_page#ajax_fragment_inside_div_of_my_choice


.. takođe, url friendly bookmark-ready stranica, sa drugačijom sadržinom, ako se onhashchange + ajax combo, upotrebi na pravi način.
Potpis
about:networking
Re: URL adresa kod ajax poziva 28.04.2016. u 16:35 · pre 128 meseci #8
Sad sam čuo da pisanje ovakvih aplikacija nije dobro za SEO jer google ima problema da dobro skapira strukturu sajta ako se ne koriste prave stranice nego ajax pozivi.
Re: URL adresa kod ajax poziva 28.04.2016. u 16:45 · pre 128 meseci #9
Mozes ti napraviti i da svaka od tih strana ima svoj link koji ako se otvori direktno ucita ti kompletnu stranu sa onim sto bi ucitao ajax.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Sviđa mi se1
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme