Avatar billede Syska Mester
21. december 2008 - 01:03 Der er 15 kommentarer og
1 løsning

Ændre URL uden load af hele siden

Hej,

Jeg har søgt sådan rundt på google og andre sider ... men har ikke kunnet finde ud af hvordan facebook når man klikker rundt i deres galleri opnår at ændre URL uden at loade hele siden ...

I'm lost ... hvordan gør de ? Kan se at linket på "prev / Next" henviser til et normalt link ... men der sker ingen page reload når man klikker ... men billedet skifter og der kommer et nyt URL link i ens browser ... hvordan kan de det ?

// ouT
Avatar billede keysersoze Ekspert
21. december 2008 - 12:09 #1
hvis URL'en skifter reloades siden også - men indgår der en havelåge, altså #, i URL'en kan det være at det kun svarer til et bookmark og at kun en del af siden så loades med AJAX.
Avatar billede mireigi Novice
21. december 2008 - 12:14 #2
Facebook er sikkert bygget op i ASP.NET hvor det det er muligt at slå page reload fra når man bruger links inde i et updatepanel.

Så du skal jo nok udover almindeligt (D)HTML for at få samme funktion.
Avatar billede keysersoze Ekspert
21. december 2008 - 12:19 #3
sjovt nok hedder alle sider på FB .php ;)
Avatar billede mireigi Novice
21. december 2008 - 12:41 #4
Heh, er lang tid siden jeg har været derinde :)

Det er vel muligt at det er iFrames så? Er det ikke noget med at de kan gøre det samme?
Avatar billede keysersoze Ekspert
21. december 2008 - 12:45 #5
det er i teorien muligt - men næppe et valg specielt mange vil foretage. AJAX.
Avatar billede Syska Mester
21. december 2008 - 15:02 #6
De bruger ik' iFrames. Har kigget på siden med Firebug ... linket er normalt.

Jeg har nogen sider som virker bedst med Ajax ... og det virker skide godt. Lige nu er det bare lavet på den måde, at vil man sende linket til sine venner, så ligger det i en textbox, med en lille title "Permalink" ... ideen, måden, fungere ... linket bliver opdateret via et UpdatePanel.

Men da jeg så FB kunne gøre det på den måde, blev jeg selvf nysgerig om hvordan de gjorde ... og jeg kan bare ikke finde noget om det på nettet eller andre steder ... måske enten fordi jeg ikke helt aner hvad jeg skal søge på eller ... ja ... håbede der var nogen herinde som havde en ide :-)

// oUT
Avatar billede olebole Juniormester
21. december 2008 - 16:01 #7
<ole>

Som du kan se på timestamp'et, reloades siden ikke, når sidens location.hash sættes via JS:

<div id="foo">&nbsp;</div>

<script type="text/javascript">
document.getElementById("foo").firstChild.nodeValue = new Date().getTime();
</script>

<button onclick="location.hash='Noget';return false">TEST</button>

/mvh
</bole>
Avatar billede olebole Juniormester
21. december 2008 - 16:06 #8
- og så er det forøvrigt ikke noget specielt for asp.net, at man kan opdatere en side uden at reloade den. Det er vi en del, der har rodet med fra før, MS kom på gaden med .net. Til gengæld bruger .net kode til formålet, som aldrig har været valid i nogen standard  ;o)
Avatar billede Syska Mester
21. december 2008 - 16:58 #9
olebole 16:06:51: Nej, det er jeg helt klar over ... hvis den kommentar var til mig.

Jeg vil helst bare undgå at skulle lave for meget custom code som jeg skal vedlige holde ... men hvis der er meget performance gain at vinde, så kan det da være en fordel.

Hørte også en fugl synge om at der skulle komme support native support for jQuery i VS 2010.

Men nok om det ... jeg vil se på dit forslag ... :-)

// ouT
Avatar billede Syska Mester
21. december 2008 - 17:08 #10
OMG ... bumset.

Havde slet ikke set deres Ancor tag i deres URL. PRUT.

Nå ... men så giver det hele jo mening igen ... havde nemlig læst at det ikke kunne lade sig gøre ... og så undrede jeg mig over at man kunne poste direkte links til FB ... og skifte uden page load ... men ja, det må de jo parse client side ... hvilket ikke helt er optimalt for mig ...

smid et svar ole.
Avatar billede olebole Juniormester
21. december 2008 - 17:36 #11
buzzzz >> Nej, det var nu en kommetar til (21/12-2008 12:14:12)  =)

"Hørte også en fugl synge om at der skulle komme support native support for jQuery i VS 2010." >> Ja, det er sandelig også rigtig fedt at skifte ét invalidt og uhensigtsmæssigt library ud med et præcis ligeså elendigt ... men skodkode er desværre vældig hyped for tiden  :o|

Hvis man bruger Ajax til at hente data med - og indsætter dem med DOM - kan man sætte en hash, som hvis URL'en kopieres, loader samme data med Ajax, når URL'en kaldes i en ny browsersession.
Om det så er det, FB gør, ved jeg ikke. Jeg er gammel nok til at have læst George Orwell's 1984 og til at huske DDR, så jeg er naturligvis ikke på FB  ;o)
Avatar billede Syska Mester
21. december 2008 - 18:10 #12
Jeg er også kun på FB af nødvendigheder.

Men det var et svar du skulle smide :-)
Avatar billede olebole Juniormester
21. december 2008 - 18:46 #13
Så gør jeg det ... *griiiiiiiiiiiiiiiiiiiiiiiiiiib*  =)
Avatar billede Syska Mester
21. december 2008 - 20:21 #14
catch e :-)

Har også lige lagt mærke til at gmail gør på samme måde som FB :-) med Ancor ... så nu vil jeg se om jeg kan finde noget information om det måske er måden at gøre det på

// ouT
Avatar billede olebole Juniormester
21. december 2008 - 20:46 #15
Tak for points  =)

Der er såmænd ikke så meget finde info om. Hvis du i forvejen loader noget ind med Ajax/DOM, kan du bare sætte location.hash, som jeg viste ovenfor.
På onload af siden tjekker du så location.hash og loader de tilsvarende data ind på siden. Hvis der er en hash, har brugeren sikkert fået URL'en tilsendt - eller han har f.eks. gemt den som en Favorit
Avatar billede olebole Juniormester
21. december 2008 - 20:50 #16
Hvad Ajax angår, så er det hundesvært at finde eksempler, artikler og tutorials (for slet ikke at tale om libraries) i moderne, hensigtsmæssig og valid kode. I tråden her har jeg dog vist et par småeksempler:
    http://www.eksperten.dk/spm/817625
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester