login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > JavaScript

functie gaat door zonder te wachten op return van functie

daanlaan – 23/06/2011 15:10 (Laatst gewijzigd op 23/06/2011 15:19)
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
Daisycon - Verdien geld met uw website

avdg – 23/06/2011 15:47
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)

daanlaan – 23/06/2011 17:37 (Laatst gewijzigd op 23/06/2011 17:38)
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?

lemoinet – 23/06/2011 20:00
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-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.028s