Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Domanda sull' HttpRequest

    Salve

    Sto cercando di applicare l'httpRequest ad uno shoutbox;
    i dati vengono inviati con il metodo post;
    vorrei che lo shoutbox si aggiornasse senza fare il refresh della pagina


    Ho questo script preso qui

    codice:
    <script type="text/javascript">
    var req;
    
    function loadXMLDoc(url) 
    {
        // branch for native XMLHttpRequest object
        if (window.XMLHttpRequest) {
            req = new XMLHttpRequest();
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send(null);
        // branch for IE/Windows ActiveX version
        } else if (window.ActiveXObject) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
            if (req) {
                req.onreadystatechange = processReqChange;
                req.open("GET", "url", true);
                req.send();
            }
        }
    }
    
    function processReqChange() 
    {
        // only if req shows "complete"
        if (req.readyState == 4) {
            // only if "OK"
            if (req.status == 200) {
                // ...processing statements go here...
    			alert ("Ciao");
            } else {
                alert("There was a problem retrieving 
                   the XML data:\n" + req.statusText);
            }
        }
    }
    </script>

    1)) nella funzione loadXMLDoc(url)
    creo prima l'oggetto httprequest
    poi creo la sintassi per l'invio della richiesta.
    data questa sintassi:
    req.open("GET", url, true);
    apro l'oggetto httpRequest
    1) al posto di get dovrò inserire post
    dal momento che i dati vengono inviati col metodo post,
    giusto?
    2) al posto di url dovrò inserire la pagina che dovrà
    processare i dati, giusto?
    3) true sta ad indicare se "....il metodo è sincrono o
    asincrono..." Giusto? Cosa vuol dire?
    2)) req.send(null);
    con questa sintassi viene inviata la richiesta
    1) "null" cosa sta a significare?
    3)) delle 2 funzioni chiamerò la prima e cioè loadXMLDoc(url)
    dove e in che modo?
    Dal momento che ho un form
    codice:
    <form method="post" action="Shoutbox.asp">
    la chiamerò qui? In questo modo?
    codice:
    <form method="post" onclick=loadXMLDoc(url) action="Shoutbox.asp">

  2. #2

  3. #3

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    1.1 Giusto
    1.2 Giusto
    1.3 Sincrono significa che il thread di esecuzione di javascript si bloccherà fino a che la richiesta al file non è terminata. Se invece è asincrono il rimanente codice continuerà ad essere eseguito anche durante la richiesta del file

    2.1 Null significa che non stai passando dati alla pagina a cui fai la richiesta. Viene di solito valorizzato nelle richieste in POST

    3.1 Il punto in cui chiamare la funzione dipende solamente da quello che ti serve fare con ajax. Perchè usi un form??
    per richiamare una funzione puoi anche usare un semplice button e chiamare la funzione all'evento onclick.

    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da fcaldera
    1.3 Sincrono significa che il thread di esecuzione di javascript si bloccherà fino a che la richiesta al file non è terminata. Se invece è asincrono il rimanente codice continuerà ad essere eseguito anche durante la richiesta del file


    Hai provato a fare esperimenti in modalità sincrona?Se sì, che ne pensi?
    Pietro

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    dipende da ciò che devo fare.

    In una applicazione su cui sto lavorando uso le richieste sincrone perchè devo bloccare anche l'esecuzione dello script, ma di solito uso richieste asincrone.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da fcaldera
    dipende da ciò che devo fare.

    In una applicazione su cui sto lavorando uso le richieste sincrone perchè devo bloccare anche l'esecuzione dello script, ma di solito uso richieste asincrone.
    Bene, dalle piccole prove che ho fatto, se uso la modalità sincrona, è vero che blocco per esempio i pulsanti della pagina, però, eventuali click si accodano agli eventi e vengono eseguiti quando lo script ajax è completo. Ecco perchè sono un poco riluttante ad usarli :master:

    Pietro

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    basterebbe disabilitare i pulsanti subito prima della richiesta e riabilitarli subito dopo... no?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da fcaldera
    basterebbe disabilitare i pulsanti subito prima della richiesta e riabilitarli subito dopo... no?
    Anche tu hai ragione Questo lo faccio regolarmente nella richiesta asincrona. Ma credevo fosse inutile in una richiesta sincrona

    Ciao
    Pietro

  10. #10
    C'è qualche errore in questa sintassi ?

    codice:
    "<input type="submit" onclick="javascript:loadXMLDoc("Shoutbox.asp")"  value="Send" size="10">"
    la mia pagina viene caricata senza errori
    ma l'aggiornamento della pagina avviene solo facendo il refresh della medesima...non capisco perchè
    :master:

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.