type success example error data jquery ajax while-loop loading

success - jquery ajax get



Datos de actualización jquery.ajax MIENTRAS procesa(antes de éxito o completo) (3)

Creo que estás buscando xhr

$.ajax({ xhr: function(){ var xhr = new window.XMLHttpRequest(); //Upload progress xhr.upload.addEventListener("progress", function(evt){ if (evt.lengthComputable) { var percentComplete = (evt.loaded / evt.total) * 100; $("#status").html(Math.round(percentComplete)); } }, false); //Upload progress xhr.upload.addEventListener("load", function(evt){ }, false); xhr.upload.addEventListener("error", function(evt){ $("#status").html("Upload Failed"); }, false); xhr.upload.addEventListener("abort", function(evt){ $("#status").html("Upload Aborted"); }, false); return xhr; }, url: .........

espero que ayude

Intento actualizar los datos MIENTRAS estoy procesando (antes de tener éxito o completar)

la parte de "éxito" de .ajax espera hasta que php esté terminado ...

En la mayoría de los casos, esperar por el "éxito" es totalmente correcto.

PERO para php más largos (como usar ffmpeg en archivos grandes) el tiempo de espera es demasiado largo y genera errores ...

Tengo este código

$.ajax ({ type: ''GET'', async: true, url: ''__/_/_path_to_PHP_file.php'', dataType: ''html'', data:''__POSTvariable1__=''+encodeURIComponent (__POSTvariable1__)+ ''&__POSTvariable2__=''+encodeURIComponent(__POSTvariable2__), cache: false, success: function(data){ $(''#div_that_needs_update'').html(data); }, error: function(request, status, error){ console.log ( ''request.responseText --> '' + request.responseText + '' status --> '' + status + '' error --> '' + error ); } });

•••• Intenté "completar" de "beforeSend" pero ¿hay un "whileLoading" o algo similar?

Gracias


Gracias por su respuesta (fue un muy buen comienzo)

Encontré esta página: http://www.sitepoint.com/php-streaming-output-buffering-explained/

y lo descubrí;) !!!!!

$.ajax ({ type: ''GET'', async: true, url: ''__/_/_path_to_PHP_file.php'', dataType: ''html'', data:''__POSTvariable1__=''+encodeURIComponent (__POSTvariable1__)+ ''&__POSTvariable2__=''+encodeURIComponent(__POSTvariable2__), cache: false, xhr: function(){ var xhr = new XMLHttpRequest(); xhr.open(''GET'', ''__/_/_path_to_PHP_file.php'', true); xhr.onprogress = function(e) { $(''#div_that_needs_update'').html(e.currentTarget.responseText); } return xhr; }, success: function(data){ console.log(''completed''); }, error: function(request, status, error){ console.log ( ''request.responseText --> '' + request.responseText + '' status --> '' + status + '' error --> '' + error ); } });


Lo finalicé más simple y más eficiente (con parámetros).

function liveXHR (p1 , p2) { var params = ''param1=''+p1+''&param2=''+p2; xhr = new XMLHttpRequest(); xhr.open(''GET'', ''__URL_OF_PHP___''+"?"+params, true); xhr.onprogress = function(e) { $(''#__ID_DIV_forUpdate___'').html(e.currentTarget.responseText); } xhr.onreadystatechange = function() { if (xhr.readyState == 4) { console.log(''Complete''); //or any onther stuff when done ;) } } xhr.send(); };