/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Kalde 2 funktioner på samme tid fejler via~
Fra : Ukendt


Dato : 09-09-09 17:16

Hej alle :)

Kender i det, jeg mener jeg for år siden har haft samme problem, men nu kan
jeg ikke huske hvordan jeg løste det :(
Nå men here goes:

Jeg har følgende php linie:

$s .= "<a style=\"cursor: pointer;\"
onClick=\"ankomstdatocalc(".$d.",".$a[1].",".$a[0].");
slutcalchange(".$a[0].",".$a[1].",".$d.");\" >$d</a>";

Men ved on click bliver kun den sidste funktion kørt.

Her er de 2:

function slutcalchange(mdr,aar,dato){
var params = "time=" + Math.random();
var url = "slutcal.php?";
params += "&month=" + mdr;
params += "&year=" + aar;
params += "&dato=" + dato;
http.open("POST", url, true);
http.onreadystatechange = handleHttpResponse3;
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);
}


function ankomstdatocalc(dato,aar,mdr){
var params = "time=" + Math.random();
var url = "ankomstdatocal.php?";
params += "&dato=" + dato;
params += "&aar=" + aar;
params += "&mdr=" + mdr;
http.open("POST", url, true);
http.onreadystatechange = handleHttpResponse4;
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);
}

De laver begge en opdatering af hver sin <div> på siden. Hver for sig
spiller de fint, men onClick med 2 funktioner spiller bare ikke..
Så vidt jeg husker, så er vi ude i at de skal køres lige efter hinanden, men
hvorn er det nu lige at det ordnes?
Jeg har prøvet at lave en function hvor de 2 functioner så bare bliver kaldt
fra, men det ændre intet :(

Er der en der lige sidder med et par guldkorn, så ville det være sweet :)

Mvh
Morten



 
 
Ukendt (09-09-2009)
Kommentar
Fra : Ukendt


Dato : 09-09-09 17:24

Lige en lille update, jeg har fået det til at køre i IE ved at køre dem
synkront, således:

http.open("POST", url, false);

Men det er FireFox ligeglad med, så gider den ikke at køre nogle af
funktionerne :(

Gode råd modtages med kyshånd..

Mvh
Morten



Anders (09-09-2009)
Kommentar
Fra : Anders


Dato : 09-09-09 19:24

Morten Juel skrev:
> Lige en lille update, jeg har fået det til at køre i IE ved at køre dem
> synkront, således:
>
> http.open("POST", url, false);
>
> Men det er FireFox ligeglad med, så gider den ikke at køre nogle af
> funktionerne :(
>
> Gode råd modtages med kyshånd..
>
> Mvh
> Morten
I firefox skal du kalde onload istedet for onreadystatechange hvis
du POST'er synkront. Det klarer du med en if-sætning ex.

if ( nav.indexOf( 'Netscape') > -1) {
....
} else {
....
}

Birger har skrevet en rigtig god artikel om det på sin side
http://bbsorensen.dk/?men=Software/AJAX eller
http://bbsorensen.dk/?men=Software/AJAX/Pas%20P
og vistnok også her i nyhedsgrupperne.

Ukendt (09-09-2009)
Kommentar
Fra : Ukendt


Dato : 09-09-09 19:44

> I firefox skal du kalde onload istedet for onreadystatechange hvis du
> POST'er synkront. Det klarer du med en if-sætning ex.
>
> if ( nav.indexOf( 'Netscape') > -1) {
> ...
> } else {
> ...
> }
>
> Birger har skrevet en rigtig god artikel om det på sin side
> http://bbsorensen.dk/?men=Software/AJAX eller
> http://bbsorensen.dk/?men=Software/AJAX/Pas%20P
> og vistnok også her i nyhedsgrupperne.

Kanon, så spiller det jo :)

Tak til dig, og Bigers side :)

Mvh
Morten



Lasse Reichstein Nie~ (09-09-2009)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 09-09-09 18:53

"Morten Juel" <xSnAbElAstarchild.dk> writes:

Kalder to funktioner i streg ...

> function slutcalchange(mdr,aar,dato){
> var params = "time=" + Math.random();
> var url = "slutcal.php?";
> params += "&month=" + mdr;
> params += "&year=" + aar;
> params += "&dato=" + dato;
> http.open("POST", url, true);
> http.onreadystatechange = handleHttpResponse3;
> http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
> http.setRequestHeader("Content-length", params.length);
> http.setRequestHeader("Connection", "close");
> http.send(params);
> }
>
>
> function ankomstdatocalc(dato,aar,mdr){
> var params = "time=" + Math.random();
> var url = "ankomstdatocal.php?";
> params += "&dato=" + dato;
> params += "&aar=" + aar;
> params += "&mdr=" + mdr;
> http.open("POST", url, true);
> http.onreadystatechange = handleHttpResponse4;
> http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
> http.setRequestHeader("Content-length", params.length);
> http.setRequestHeader("Connection", "close");
> http.send(params);
> }
>
> Er der en der lige sidder med et par guldkorn, så ville det være sweet :)

Du ser ud til at genbruge det samme XMLHttpRequest-objekt (variablen
"http"). Når du gør det asynkront, så vil den første sikkert ikke engang
nå at sende requesten afsted før objektet bliver reinitialiseret og genbrugt
af den anden funktion. Det går ikke. Kun en request per XHR-objekt ad gangen.

Hvis den første er synkron, så vil den nå at blive færdig før den
anden begynder, og så er der ikke noget problem (men heller ikke nogen
parallelitet)

Så: Brug forskellige XHR-objekter i de to funktioner.

/L
--
Lasse Reichstein Holst Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Ukendt (09-09-2009)
Kommentar
Fra : Ukendt


Dato : 09-09-09 19:45

> Du ser ud til at genbruge det samme XMLHttpRequest-objekt (variablen
> "http"). Når du gør det asynkront, så vil den første sikkert ikke engang
> nå at sende requesten afsted før objektet bliver reinitialiseret og
> genbrugt
> af den anden funktion. Det går ikke. Kun en request per XHR-objekt ad
> gangen.
>
> Hvis den første er synkron, så vil den nå at blive færdig før den
> anden begynder, og så er der ikke noget problem (men heller ikke nogen
> parallelitet)
>
> Så: Brug forskellige XHR-objekter i de to funktioner.

Ja fik løst det, men så kom FF fejlen, men den er også løst i tråden :)
Tak for svar :)

Mvh
Morten



Søg
Reklame
Statistik
Spørgsmål : 177425
Tips : 31962
Nyheder : 719565
Indlæg : 6407911
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste