Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di giacomino_jack
    Registrato dal
    Feb 2002
    residenza
    Italy
    Messaggi
    202

    [ajax] come attendere una risposta?

    Sto provando a interagire con un database in modo asincrono tramite ajax ed ho alcuni problemi di sincronismo tra quanto richiesto e quanto viene visalizzato: la risposta impiega qualche secondo e la visualizzazione della pagina non mostra le informazioni esatte.

    Devo quindi attendere... MA COME

    e grazie i nanticipo

  2. #2
    Utente di HTML.it L'avatar di giacomino_jack
    Registrato dal
    Feb 2002
    residenza
    Italy
    Messaggi
    202
    up

  3. #3
    Ciao
    è chiaro che la risposta non ti puo arrivare istantaneamente visto che si tratta di una richiesta http a un server remoto. Per non confondere l'utente con questa attesa,puoi implementare una callback che controlli i cambiamenti di stato e lo stato stesso della richiesta in corso richiamando un div in primo piano con un qualche messaggio (es. loading) o barra di stato che "intrattenga" l'utente per tutto il tempo necessario.
    Puoi anche decidere un timeout oltre il quale annullare la richiesta oppure inserire un pulsante nel div in questione che permetta all'utente di richiamare il metodo abort() ma in ogni caso fondamentale evitare la possibilità di richieste multiple e/o accavallate.

  4. #4
    Utente di HTML.it L'avatar di giacomino_jack
    Registrato dal
    Feb 2002
    residenza
    Italy
    Messaggi
    202
    Scusa il ritardo... mi ero distratto
    OK. Fin qui ci ero arrivato: Chiamo la pagina che mi efffettua l'elaborazione e contemporaneamente visualizzo una div in primo piano
    che poi dovre togliere nel momento in cui ho la risposta :master:

    Qualche esmpio pratico?


  5. #5
    Io faccio così, preso dalla guida di HTML tra l'altro, scusa se non pulisco il codice

    Praticamente fa da solo, quando lo stato della lettura cambia a 4 allora eseguo il resto
    codice:
    			ajax.onreadystatechange = function(){
    				if (ajax.readyState==4){
    					if (statusText[ajax.status] === "OK"){
    						var datiXML = ajax.responseXML	
    						if (datiXML){
    							var Dati = parsaXml(datiXML)
    							if (Dati!=""){
    								Stampa.innerHTML=Dati
    								metti()							
    							}else{
    								togli()
    							}
    						}else{
    							alert("non xml")				
    						}
    					}
    				}
    			}

  6. #6
    Utente di HTML.it L'avatar di giacomino_jack
    Registrato dal
    Feb 2002
    residenza
    Italy
    Messaggi
    202
    Grazie Stan.
    Rapido e preciso.
    E' molto simile a quanto sto realizzando (uso dati non XML...) ma quello che non riesco a fare è la parte riguardante l'attesa. Per intenderci la parte da visualizzare per l'utente

  7. #7
    Utente di HTML.it L'avatar di giacomino_jack
    Registrato dal
    Feb 2002
    residenza
    Italy
    Messaggi
    202
    E poi un'altra cosa:
    Che differenza c'è tra ==4 e ==="OK" ?
    Ci vogliono 2 o 3 '=' per i controlli? e se è diverso?

  8. #8
    Guarda sulla guida trovi tutto, ci ho fatto solo una applicazione per cui non sono esperto.
    Ci sono mi pare 5 stati diversi.
    Il 4 è quello utile quelli prima non ricordo quando si verificano, potrebbero essere utili per mostrare qualche feedback tipo loading o non so.

    "OK" non ricordo, credo sia stato impostato come costante su un file chiamato utility.js (che trovi nella guida) ^^

  9. #9
    Utente di HTML.it L'avatar di giacomino_jack
    Registrato dal
    Feb 2002
    residenza
    Italy
    Messaggi
    202
    Scusami ma ho posto male la domanda.
    Che differenza c'è tra ==4 e ==="OK" ?
    Ci vogliono 2 o 3 '=' per i controlli? e se è diverso?
    Il tutto era riferito al carattere = e non sui valori di confronto (4 e OK ) che ho trovato anch'io sulla guida di html

  10. #10
    Ah, dovrebbe essere che

    se tu fai un confronto tipo

    4=="4" te lo verifica
    mentre
    4==="4" no

    Con tre uguali oltre allo stesso valore devono essere dello stesso tipo.
    Ma potrei aver detto una cazzata

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 © 2024 vBulletin Solutions, Inc. All rights reserved.