Notizie: se possiedi un dispositivo Android, prova Firefox per Android, un browser scattante e dinamico per navigare in ambiente mobile.

Autore Topic: javascript evento invio della request al server  (Letto 2779 volte)

0 Utenti e 2 Visitatori stanno visualizzando questo topic.

Offline gladio_n1

  • Post: 2
javascript evento invio della request al server
« il: 07 Febbraio 2012 14:06:09 »
Ho bisogno di catturare con javascript l'evento di invio della request al server per effettuare delle operazioni prima che il server risponda. L'evento onunload o onbeforeunload si attivano solo quando il browser riceve una risposta.
Tutto questo perché in una mia applicazione web alcune richieste portebbero tardare alcuni minuti e vorrei visualizzare un div o un cursore di attesa.

Con explorer uso document.readstate che quando si invia una richiesta cambia subito a 'loading'...peró in firefox cambia solo sulla risposta del server.
« Ultima modifica: 07 Febbraio 2012 14:15:15 da gladio_n1 »


Offline gladio_n1

  • Post: 2
Re: javascript evento invio della request al server
« Risposta #2 il: 08 Febbraio 2012 11:03:13 »
Grazie dei link peró non servono per il mio caso. Si volevo scrivere document.readystate.

La mia applicazione web ha molte pagine che inviano dati al server con submit(form) o location.href...il problema é che non posso modificare tutte le pagine per aggiungere una funzione (che si occuperebbe di modificare il puntatore o mostrare un avviso) ad ogni linea di codice che invia dati.

Tutte le pagine includono una pagina base e qui vorrei aggiungere questa gestione.

Se fosse possibile catturare un evento generico di invio request al server (submit o location.href che sia) avrei risolto il problema.
Da quello che ho visto gli eventi che posso catturare si riferiscono a quando nel browser si carica la nuova pagina (onunload...). Se peró il server è lento a rispondere (per esempio una richiesta che deve accedere a varie table DB e effettuare calcoli molto lunghi), questi eventi avvengono quando giá non mi servono.

Per riassumere quando un utente clicca su un bottone che fa un location.href ad una nuova pagina, vorrei visualizzare, per esempio, un messagggio "Operazione in Corso" che sparirá quando si visualizzerá la nuova pagina. tutto questo senza toccare il codice del bottone o della funzione che richiede il cambio di pagina.

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: javascript evento invio della request al server
« Risposta #3 il: 08 Febbraio 2012 11:29:04 »
Secondo me devi caricare in modo asincrono la pagina, mettendo una pagina in attesa.
Secondo me se chiedi su HTML.it è meglio, comunque una cosa del genere (io te la faccio usando jQuery:


Codice: [Seleziona]
prerequest.html (quello che richiama il link)
<body>
<div>
Attendere prego…
</div>
</body>
<script>
$(document).ready(function() {
$('body').load('url_same_server')
});
</script>

dove urla è il link alla vera richiesta al server (assicurati che torni solo il codice all'interno del body e aggiungi l'intestazione a questo file).

Viene mostrato l'attendere prego, quando la pagina è pronta viene sostituito il tutto.

Edit: ho corretto qualche errore nel codice che avevo scritto velocemente, così con jQuery e qualche attenzione dovrebbe funzionare.
« Ultima modifica: 08 Febbraio 2012 13:45:14 da gialloporpora »

0 Utenti e 2 Visitatori stanno visualizzando questo topic.