È possibile ottenere il progresso di caricamento di un modulo con campi di testo molto grandi utilizzando jQuery ajax? Penso che il client sappia quanti byte sono stati inviati, ma quando trovo Google trovo solo soluzioni per il caricamento di file usando il codice del sito del server.jQuery AJAX caricamento avanzamento per campi di testo di grandi dimensioni
Questo è il mio ajax-richiesta:
$.ajax({
type: "POST",
url: "index.php?action=saveNewPost",
data: {textbox1: textbox1,textbox2: textbox2},
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
success: function(){
//
}
});
Speravo ci sarebbe qualcosa di simile "onProgress" con un parametro che contiene la quantità di byte già inviati ...
trovato una soluzione
$.ajax({
xhr: function() {
var req = $.ajaxSettings.xhr();
if (req) {
req.upload.addEventListener('progress', function(event) {
if (event.lengthComputable) {
$('#ajaxFeedbackDiv').html(event.loaded); // = 'test'; //event.loaded + '/' + event.total;
}
}, false);
}
return req;
},
type: "POST",
url: "index.php?action=saveNewPost",
data: {textbox1: textbox1,textbox2: textbox2},
contentType: "application/x-www-form-urlencoded;charset=UTF-8"
}
});
questo sembra funzionare, ospitarci ci sono ancora
2 problemi:
- il collegamento sul mio localhost è troppo veloce, quindi è difficile vedere il "progresso" in realtà di lavoro. Ho installato questo strumento http://mschrag.github.com su un secondo Mac nella stessa rete e vedo che funziona perfettamente.
- Non sono sicuro che questo accadrà in caso di browser non compatibili con XHR/HTML5, ovvero caricare semplicemente le informazioni di avanzamento?
In realtà non c'è davvero un 'callback onprogress' nell'oggetto' XMLHttpRequest'. Tuttavia, è un nuovo standard e non tutti i browser lo supportano. – Licson
si prega di vedere quello che ho aggiunto sopra, funziona. Grazie per il tuo supporto –