Som i al anden Javascript-kode (og mange andre C-style sprog), hvis du vil benytte variabler uden for en funktion, skal du enten deklarere de variabler i et højere scope - altså uden for funktionen - eller returnere dem fra funktionen og sætte dem hvor du kalder den.
@Slater Tak for dit svar. Det er jeg sådan set med på. Jeg synes bare ikke lige, jeg kan få det til at fungere i dette tilfælde.(Er ikke super rutineret i javascript endnu). Kan du evt. hjælpe mig på vej?
Værdierne skal bruges i en anden funktion på siden, som skal starte en nedtællingsfunktion på et bestemt klokkeslæt. Jeg har brug for adgang til alle fire variabler uden for selve polling funktionen. Håber det er tydeligt nok.
Jamen så er det virkelig bare f.eks. at deklarere dem som globale variabler. Det er ikke den bedste praksis i et større system, men det er den nemmeste måde.
Lav en "var length, startingTime, send, reset;" uden for funktionen, så eksisterer de i et højere scope og kan bruges uden for funktionen. Det kan dog være en god idé at give dem et mere beskrivende navn eller prefix for at undgå kollisioner.
Selvfølgelig skal du også medregne, at fordi værdierne først sættes i et callback, vil de ikke være tilgængelige før dette er kørt. Du kan godt læse variablerne, men de vil ikke have nogen værdi endnu. Men vi kan ikke vide om det er et problem, eller hvordan det løses, ud fra hvad du viser.
Det fungerer desværre ikke at deklarere værdierne global, det har jeg prøvet. Når jeg spørger på variablerne er de "undefined". Det hænger sandsynligvis, som du også skriver, sammen med timingen mellem responsen og hvornår der spørges på værdien, men jeg kan ikke umiddelbart få det løst.
Nej, men der er du som sagt nødt til at fortælle os om det problem du har. Her beskriver du kun udfordringen med at tilgå variablerne, hvilket så nok ikke var det reelle problem.
Jeg er da virkelig ked af, at jeg tilsyneladende ikke kan forklare problemet tydeligt nok. Men det reelle problem er netop, at jeg ikke kan tilgå de "opdaterede" variabler, uden for funktionen.
Men du kan godt tilgå dem - det er sandsynligvis kun et spørgsmål om hvornår du prøver at tilgå dem. Og det problem er slet ikke beskrevet.
Det du viser i spørgsmålet er funktionen hvor værdierne sættes. Men det er nu stort set irrelevant - det der driller er stedet hvor du forsøger at benytte værdierne, og det er det vi skal have beskrevet og evt. se noget kode på.
Hvordan bliver det f.eks. startet? Bliver det sat én gang eller opdateret regelmæssigt? Hvad er det der gør, at du ikke kan nøjes med værdierne i checkUpdates funktionen, men har brug for dem uden for? Hvad er grunden til at dette overhovedet skal gøres i AJAX og ikke bare direkte i PHP under load?
Værdierne bliver sendt manuelt fra en formular, fra en anden side, via XMLHttpRequest over PHP på serveren. Når de bliver hentet ind, kører funktionen checkUpdates() og venter på en ny ændring. CheckUpdates funktionen kører i et loop og det er det, der gør at jeg ikke kan tilgå værdierne derfra, for så kaldes funktionerne jeg skal bruge også i et loop.
Grunden til brugen af AJAX, er at værdierne skal kunne indstilles på én side, og bruges på en anden side, som står åben.
Det der indstilles, er en kamplængde, en starttid og et par ”seudo”-binære værdier, der bruges til start og stop af en timer.
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.