Avatar billede mik789 Nybegynder
19. marts 2002 - 11:56 Der er 9 kommentarer og
2 løsninger

URL syntaks sp.

To sp.:
Hvilken funktion har tegnet & i en URL?

Hvad betyder n=0 i en URL? f.eks. i en URL som denne: http://www.blabla.dk/minside.html?n=0#barndom

/mik
Avatar billede rou Nybegynder
19. marts 2002 - 12:05 #1
Det er en såkaldt Querystring du spørger om, og har ikke specifikt noget med selve URL'en at gøre.
Det bruges til at sende parametre til den side der kaldes.

F.eks. kalder man siden http://www.feks.dk/index.asp?id=2
så betyder det at siden index.asp kan hente ID ud af querystring, og få værdien 2.
& bruges så til at separere disse parametre, hvis der er mere end een.

- Rou
Avatar billede nikolajdu Nybegynder
19. marts 2002 - 12:05 #2
n=0 overfører en variabel via headeren - Den kan så hentes ud igen med lidt scripting.

& sammensætter flere variabler

?n=0&i=1

/Nikolaj
Avatar billede nikolajdu Nybegynder
19. marts 2002 - 12:06 #3
Separere er nok en hel del bedre udtryk end sammensætte ;-)
Avatar billede mik789 Nybegynder
19. marts 2002 - 12:19 #4
nikolajdu>> "n=0 overfører en variabel via headeren"

- overfører til hvad? og hvorfor overhovedet?

Det her handler om at jeg prøver at forstå et script som jakoba har hjulpet mig med. Det ser sådan ud (ændret lidt af mig):

<script language="javascript">

var loadedFrame = false;

function thisPage() {
  var parseUrl = location.href;
  parseUrl = parseUrl.split("#");
  parseUrl[0] = parseUrl[0].split("?");
  parseUrl[0][1] = (parseUrl[0].length>1)?parseUrl[0][1]+"&n=0":"n=0";
  parseUrl[0] = parseUrl[0].join("?");
  return parseUrl.join("#");
};

if ( !parent.loadedFrame ) {
  loadedFrame = true;
  document.write( '<frameset cols="15%, *" border="0" framespacing="0">'
                +'  <frame border="0" frameborder="no" name="left" src="leftframe.html">'
                +'  <frame border="0" frameborder="no" name="main" src="'+thisPage()+'">'
                +'</frameset>'  );
};

</script>

Dette script går ud på at loade et dokument ved et eksakt mærke (#) i det rigtige frameset. Jeg forstår så meget at scriptet først deler href'en op i to arrays (først ved # og så ved ?) og derefter sammensætter det hele igen. Men hvorfor indsættes variablen n=0 i den historie?
Avatar billede mik789 Nybegynder
19. marts 2002 - 14:46 #5
jeg tror (måske) jeg selv har forstået det:

n=0 er bare en given variabel med en given værdi. URL-strenge kan indeholde serier af variabler efter ? (prøv f.eks. at lav en søgning på Google og se den URL der står i siden med søreresultatet). Når jakoba's script indsætter &n=0 eller n=0 tager det bare højde for givne variabler og værdier i den pågældende URL og indsætter dem på det korrekte sted i strengen. Korrekt?
Avatar billede jakoba Nybegynder
19. marts 2002 - 17:37 #6
Det er helt korrekt som de andre har svaret.

Men i det aktuelle script ( http://hjem.get2net.dk/Jakob.Aggernaes/temp/expframe.html ) er det dog ikke for at overføre en parameter at jeg sætter n=0 på. Det er blot for at gøre url-referencen forskellig fra den side der lige er blevet læst så siden bliver læst frisk ind i sin ramme. (NS 4.x har en grim uvane med at cashe den prefortolkede side (dvs med dowument.writes() udført) så hvis ikke man ændrer urlen henter den det nyskrevne frameset ind (og ind (og ind))

mvh JakobA

PS. luk det der andet spm. Et spørgsmål må kun oprettes een gang.

mvh JakobA
Avatar billede rou Nybegynder
19. marts 2002 - 17:40 #7
Jakob, der findes meta tags og andet godt, som fortæller browseren at den ikke skal cache siden.
Avatar billede mik789 Nybegynder
19. marts 2002 - 21:38 #8
tak for svarerne. jeg mangler noget basal viden om hvad der sker når en side loades for helt at forstå det, men I har da vist gjort jeres bedste.
Avatar billede nikolajdu Nybegynder
20. marts 2002 - 01:44 #9
mik - Hvad tænker du på når "en side loades" - Hvad forstår du ikke eller hvad er det du vil vide?
Avatar billede mik789 Nybegynder
20. marts 2002 - 06:50 #10
altså -

1) hvad menes der med at få browseren til at ungå at "cashe den prefortolkede side"? funktionen thisPage i scriptet ovenfor har netop til hensigt at "undgå at denne side loades fra cashe til indre ramme" (fra jakoba's kommentar i scriptet, som jeg har fjernet). Hvor kommer cachen ind i det her (jeg ved ikke andet om en cache end at det er et slags midlertidigt RAM lager)? Og hvad vil det sige at siden er "prefortolket"? Hvis der var tale om at indlæse en side, der allerede har været indlæst før i samme session, kunne jeg forstå at siden ville ligge i en cache hvorfra den så ville kunne hentes hurtigt igen. Men i mit oprindelige sp. til jakaba var der ikke tale om at siden nødvendigvis har været læst ind før, men blot om at indlæse en side så den vises i sit frameset (og vises fra et eksakt mærke). Hvor kommer cachen ind her?

2) og hvordan kan man bare sætte en vilkårlig variabel ind i en URL uden at det ødelægger den? jeg troede først at n=0 blot ville blive fortolket som "en hvilken som helst" variabel der måtte være i en given URL - dvs. sådan at URLer med indsatte variabler (jfr mit eksempel ovenfor med Google) ville kunne indlæses på samme måde (i deres frameset og på et eksakt sted), hvis det var det der var tale om. Men sådan er det ikke så vidt jeg forstår på jakobas svar med at undgå at siden caches.

OK - så meget er vist relevant at spørge om i forbindelse med netop dette sp. - meeeen, der er meget mere hvor det kom fra ;-) Det skyldes alt sammen at jeg er ved at forsøge at lære javascript sådan på egen hånd - og det er en anden sag end at forstå html og css som i det mindste begge er enkle og entydige i deres principper og "grammatik" - straks meget mere indviklet og uigennemskueligt med disse scripts :-|

men tak fordi I gider at hjælpe forståelsen på gled
/mik
Avatar billede mik789 Nybegynder
20. marts 2002 - 11:16 #11
måske har jeg selv svaret på sp.2: når en en variabel indsættes i en URL i query-strengen, vil browseren lede efter denne variabel (eller en henvisning til den) i den side, der indlæses. Men hvis variablen ikke er der i siden, ignoreres den bare uden det giver nogle problemer for indlæsningen. Derfor fungerer det, som jakoba siger, bare til at markere en forskel i forhold til den href der er indlæst allerførst med parseUrl=location.href ??? er det korrekt? hvis ja, så er der kun det første sp. tilbage.
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