Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Chiamata Ajax particolare

    All'interno di un ciclo for effettuo una chiamata asincrona più volte (funzione call_ajax).
    Ho notato che ha esito positivo solo l'ultima chiamata.
    Allora ho provato a rallentare inserendo subito dopo la call_ajax questo ciclo:
    for (x=1; x<350000; x++)
    { var y="";}
    Le cose sono leggermente migliorate nel senso che 2 o 3 chiamate vengono effettuate
    con successo ma ritorna la stesso problema quando le chiamate da effettuare sono più di 3.
    Quando poi le chiamate sono parecchie allora compare un messaggio di Explorer che mi avverte che lo script sta rallentando l'esecuzione di IE e questo potrebbe non rispondere,
    in realtà si sblocca ma si presenta il problema suddetto (solo poche chiamate hanno successo).

    Questo il codice:

    for (ecc ecc ecc)
    call_ajax(codice);
    fine for
    alert ("Tutto OK!");
    location.href="pippo.php";

    function call_ajax(id_scad)
    {
    var numero_causale=Math.random();
    var url = "query.php?x=numero_causale&";
    http.open("GET", url + "tab=riba" + "&id_scadenza=" + id_scad, true);
    http.onreadystatechange = handleHttpResponse;
    http.send(null);
    }
    function handleHttpResponse() {non fare un c......zo) }

    Qualcuno che ha esperienza su chiamate ajax multiple ???

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    quando fai una chiamata con ajax devi aspettare la risposta, quindi non puoi fare chiamate all'interno di un ciclo for
    dovresti far partire la chiamata all'interno della funzione handleHttpResponse

  3. #3
    come faccio li dentro?

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Io non ho mai usato le funzioni che usi tu... uso l'oggetto xmlhttp... nel tuo caso dipende da cosa devi fare di preciso... comunque nella funzione handleHttpResponse devi controllare lo status della richiesta e se è 200 (la richiesta è andata a buon fine) richiami call_ajax
    ti servirà ovviamente una condizione di uscita da questa ricorsione... magari usando una variabile globale come contatore

  5. #5
    grazie della dritta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.