login  Naam:   Wachtwoord: 
Registreer je!
 Forum

functie gaat door zonder te wachten op return van functie

Offline daanlaan - 23/06/2011 15:10 (laatste wijziging 23/06/2011 15:19)
Avatar van daanlaanMySQL interesse Ik heb 2 functions in js.
eentje is om via ajax een url te openen
en de andere roept deze functie op en 'zou moeten' wachten op een return.

  1. function ajaxSend(params)
  2. {
  3. var http = createRequestObject();
  4. http.open('get', 'ajax.php?'+params);
  5. http.onreadystatechange =
  6. function handle_rate_input()
  7. {
  8. if(http.readyState == 4 && http.status == 200)
  9. {
  10. if(http.responseText)
  11. {
  12. return http.responseText;
  13. }
  14. else
  15. {
  16. return 0;
  17. }
  18. }
  19. }
  20. http.send(null);
  21. }
  22.  
  23. function sendTradeRequest()
  24. {
  25. var player2 = $('#tradeRequestName').val();
  26. var ajaxResponse = ajaxSend('tradeRequest='+player2);
  27. if(ajaxResponse==1){
  28. $('#tradeBox').fadeIn();
  29. }else{
  30. alert('Foutmelding, neem contact op met een admin.');
  31. }
  32. }


Wat gebeurt er nu, ik declareer de variabele ajaxResponse en controleer daarna of deze 1 is. Deze waarde krijgt hij terug van de functie ajaxSend.

Maar de functie wacht blijkbaar niet tot hij een waarde heeft terug gekregen en begint meteen te controleren... if(ajaxResponse==1){

3 antwoorden

Gesponsorde links
Offline avdg - 23/06/2011 15:47
Avatar van avdg PHP gevorderde Dit komt omdat js de code van boven naar beneden leest, in js zijn er geen functies om de compiler te laten stoppen. Om dit probleem op te vangen, aanvaarden de functies een functie die uitgevoerd wordt na bv. het laden van een pagina. (Js doet wel de taken, maar doet deze op de achtergrond terwijl het script verder wordt verwerkt, dus in een asynchrone manier)
Offline daanlaan - 23/06/2011 17:37 (laatste wijziging 23/06/2011 17:38)
Avatar van daanlaan MySQL interesse
avdg schreef:
Dit komt omdat js de code van boven naar beneden leest, in js zijn er geen functies om de compiler te laten stoppen. Om dit probleem op te vangen, aanvaarden de functies een functie die uitgevoerd wordt na bv. het laden van een pagina. (Js doet wel de taken, maar doet deze op de achtergrond terwijl het script verder wordt verwerkt, dus in een asynchrone manier)

dus ik zal de code van die eerste functie telkens opnieuw moeten typen om een ajax functie gebruiken?
Offline lemoinet - 23/06/2011 20:00
Avatar van lemoinet PHP gevorderde aan je tweede functie te zien gebruik je jQuery als framework. waarom gebruik je de ajax-functie van jQuery niet voor de afhandeling van asynchrone requests?
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.177s