26. maj 2010 - 09:05Der er
12 kommentarer og 2 løsninger
Unik "browser session" ?
Jeg er rendt ind i et sjovt problem: På mit site bruger jeg en cookie til at gemme nogle "status oplysniger". - Handler om en "toolbox" - positionen og størrelsen af denne, aktivt faneblad og dettes scroll-top. Sådan at, når brugeren skifter side, bliver toolboxen hvor den er: Dejligt.
MEN
Hvis brugeren arbejder med sitet, i to browservinduer, skrives disse data jo i den samme cookie, med det resultat at toolboxen hopper rundt.
Ja, det er ikke verdens største problem, men en interessant problemstilling, som jeg ikke liige kan finde en løsning på:
Hvordan kan man navngive en cookie unikt for den aktuelle "browser-session". - findes der en "intern værdi" i DOM f.eks. som er unik for browservinduet, på tværs af dokumenter men ikke på tværs af vinduer ?
En cookie gemmes "til browseren" og ikke til eksisterende vindue af browser. Så nej.
Og hvorfor ta' højde for at brugeren flytter rundt på div. ting i forskellige vinduer ?
Synes godt om
Slettet bruger
26. maj 2010 - 11:57#2
Fordi det er en temmelig "omfangsrig" toolbox, og det er irriterende at man skal åbne og flytte den samme sted hen, igen og igen hver gang man skifter "hovedside".
Jeg HAR som sagt lavet det, og det funker perfekt - bortset fra dén situation hvor brugeren tilgår sitet med flere vinduer samtidig (hvilket dog er ret usandsynligt - og ikke resulterer i deciderede fejl)
Så det ER mest det principielle i situationen: - At begrænse cookie'ns "virkefelt" til det aktuelle browservindue...
Ehh, du mener, hvis brugeren åbner et nyt vindue/faneblad, vises de gamle indstillinger ? Altså cookie fra første vindue virker ikke i det nye ?
Synes godt om
Slettet bruger
26. maj 2010 - 12:50#4
Jo, de virker også i det nye vindue - det er netop dét de IKKE skal. - hvert af vinduerne skal kunne arbejde med sin egen toolbox-cookie.
Ved, havde jeg tænkt, at cookien navngives med en værdi som er unik for vinduet...
Den bedste idé jeg er kommet på (som dog er usandsynlig bøvlet) er at lægge navnet i et hidden <input> felt, som sættes (hvis det mangler), og overføres fra side til side af PHP. - men dén har jeg opgivet på forhånd, dels pga. bøvlet, men mest fordi det, med stor sandsynlighed, vil kikse og/eller kaste prompter i hovedet på brugeren hvis hun bakker : ( (Der ER ingen "superForm" på siderne i forvejen)
I 'gamle dage' brugte man frames til at gemme data på tværs af vekslende dokumenter i samme browservindue. Data blev gemt i det yderste frameset dokument - og siderne blev så skiftet indenfor dette frameset. JavaScript kunne så fra et dokument inde i framesettet skrive op til - og læse fra - det yderste frameset
Det samme kan du ikke gøre med cookies, da du ikke umiddelbart kan skelne vinduer fra hinanden ... de har ikke en tilgængelig identifier. Naturligvis har de hver en identifier, men du skal f.eks. ud og have fat i noget Shell-scripting, for at få fat i den. Indenfor webkode har du dog ikke mulighed for at tilgå den slags.
/mvh </bole>
Synes godt om
Slettet bruger
26. maj 2010 - 13:35#7
Jaaa, jeg kunne jo, istedet for cookie'en, lægge værdierne op i en superFrame - som jeg i forvejen pønser lidt på - bare for at skjule de "grimme URLer"
Men jeg har, hidtil, slået det hen, fordi jeg bruger "top" til at flintre rundt imellem dokumentet og diverse IFRAMES (men skal bare rette alle "top." til "window.parent.") - så, faktisk mest fordi JEG godt kan li' de "grimme URL'er" (til debugging..)
Ja, points til dig Ole - men ikke endnu! - jeg vil stadig gerne se en løsning på "det principielle problem" : )
'Det principielle problem' er jeg meget sikker på, du ikke får en løsning på - og (i)frames kan jeg ligesom telegrafnøgler og dampdrevne symaskiner ikke anbefale til ret meget.
Dog kan de stadig bruges på museer, udstillinger og i dokumentarfilm, så vore børn og børnebørn kan få en fornemmelse af, hvordan deres sære fortid så ud ;o)
Synes godt om
Slettet bruger
26. maj 2010 - 15:07#9
LOL
Nu BRUGER man faktisk stadig dampmaskiner - når det virkelig skal virke! - i atomkraftværker.
Jeg bruger dem (IFRAMES!) i mit eget hjemmestrikkede AJAX-system.
Jeg har en IFRAME (i en div ude af syne), som jeg skriver til vha. innerHTML - det jeg skriver er en <form> med action, felter, values og hele svineriet, som jeg derefter sumbitter - serveren svarer med en klump javascript, som kører umiddelbart.
Så dét var endnu et par røde klude : ) - Jeg kan levende forestille mig din reaktion, men som sædvanlig: Det er let at forstå, debugge, tilrette/udvidde og super-fleksibelt.
Nejnej, det skam ikke røde klude. Den teknik arbejdede jeg enormt meget med for en halv snes år siden. Det var vi rigtig mange, der gjorde - men vi gjorde det, fordi det var den eneste løsning, der på det tidspunkt var tilgængelig.
I dag er der heldigvis kommet langt bedre metoder til - men det står da alle helt frit, om de stadig vil ligge og kæmpe med gammelt skidt. Mit liv er dog al for kort til den slags =)
Synes godt om
Slettet bruger
26. maj 2010 - 16:38#11
Hmm... "gammelt skidt" - Og jeg som gik og troede jeg havde opfundet en genial AJAX-erstatning : )
- Og jeg som gik og troede jeg havde opfundet en genial AJAX-erstatning : )
Din metode var meget udbredt for 5-10 år siden. XMLHttpRequest er faktisk en erstatning for den metode du bruger. Jeg troede faktisk at din metode med at bygge formularer op i iframes (eller submitte formularer til usynlige frames) - og så lade serveren returnere JavaScript til browseren - kun blev brugt til cross-domain AJAX i dag.
Synes godt om
Slettet bruger
28. maj 2010 - 14:59#13
Det virker nu (stadig) upåklageligt - og er let at debugge, hvis ikke... - og så slipper jeg for (ActiveX) "black box" kode ala: if (xmlHttp.readyState==4) <= føj
Der er dog én hage ved metoden, har jeg lige opdaget - back-knappen.. Ikke at der (tilsyneladende) går noget galt, bare "mystisk" for brugeren. "- hvorfor skal man klikke 18 gange på back, før den gør det ?"
Jeg overvejer at "kurrere" det, ved helt at droppe min <form> og bruge location.replace("BJAX.php?"+parms) og $_GET i PHP-enden. - men så ryger det meste af debug-venligheden :(
SÅ, det ender nok med at jeg må bøje nakken, og falde ind i geleddet...
Synes godt om
Slettet bruger
21. juni 2010 - 22:37#14
Ja, det bliver sgu for meget ståhej for den småting
Synes godt om
Ny brugerNybegynder
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.