Jeg vil ikke bare konstatere, men også forstå hvad der sker, for
ellers har jeg jo ikke lært noget til næste gang. Her er noget kode:
if (confirm('Tilføj '+nytAntal+' stk. '+nyVare+' til indkøbskurven?'))
index = document.cookie.indexOf("Kurven");
taellerStart = (document.cookie.indexOf("=", index) + 1);
taellerSlut = document.cookie.indexOf(";", index);
if (taellerSlut == -1) {
taellerSlut = document.cookie.length;
}
document.cookie="Kurven="+document.cookie.substring(taellerStart,taellerSlut)+"["+nyVare+"|"+nyPris+"|"+nytAntal+"]";
Allerede i linie 2 er jeg i tvivl om, hvilken værdi der bliver
returneret. Metoden returnerer den position hvor "Kurven" er fundet,
så det er vel 6, eller hvad?
I linie 3 ledes efter lighedstegnet. Positionen returneres (er det 7?)
og søgningen starter ved den position, hvor "Kurven" blev fundet (det
er vel igen 6?) + 1, hvilket vel også er 7?
I linie 4 ledes efter semikolon. Positionen returneres (den kendes
ikke på nuværende tidspunkt) og søgningen starter ved den position,
hvor "Kurven" blev fundet.
I linie 5 og 6 står der, at hvis semikolon ikke findes, sættes
tællerSlut til længden (d.v.s. antal karakterer), som den optalte
streng består af. Og her står jeg helt af: Har den gennemsøgt og
optalt HELE cookien, som jo sagtens kan indeholde 2 eller flere varer
i røven af hinanden?
Til sidst sættes indholdet af cookien. Men, men, men... Sådan som jeg
læser den, kommer den til at bestå af "Kurven=" efterfulgt af den
første vare (renset for knækparanteser) og derefter den næste vare MED
knækparanteser.
Jeg ved godt, at jeg er galt afmarcheret i min analyse, men hvor er
det helt præcist kæden hopper af? Skidtet virker godt nok, men jeg vil
altså gerne vide HVORFOR det virker. En trinvis forklaring vil være
knippelfin.
Venlig hilsen
Kurt Hansen
|