Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

170
Vistas
Transmitir el progreso del script PHP del lado del servidor al javascript del lado del cliente

Parece que algo ha cambiado en Ajax-land; un proceso que funcionó bien durante años para que el usuario supiera que el servidor realmente estaba analizando su trabajo ha dejado de funcionar.

Lo he destilado lo mejor que puedo a lo siguiente:

Lado del cliente:

 function start () { var jsonResponse = '', lastResponseLen = false; $.ajax({ url: getAjaxUrl(), method: 'POST', data: { REQ_TYPE: 'Misc_Action', SUB_TYPE: 'Misc_TestComms' }, xhrFields: { onprogress: function(e) { var thisResponse, response = e.currentTarget.response; if(lastResponseLen === false) { thisResponse = response; lastResponseLen = response.length; } else { thisResponse = response.substring(lastResponseLen); lastResponseLen = response.length; } jsonResponse = JSON.parse(thisResponse); document.getElementById('messages').innerHTML = 'Processed '+jsonResponse.count+' of '+jsonResponse.total; } }, success: function(text) { console.log('done!'); document.getElementById('messages').innerHTML = 'Process completed successfully'; } }); }

(tenga en cuenta que la url está correctamente formada)

Lado del servidor:

 function Misc_TestComms () { $runs = 25; $i = 0; echo json_encode(array('progress' => 0, 'count' => $i); flush(); ob_flush(); while ($i < $runs) { $i++; echo json_encode(array('progress' => (($i/$runs)*100), 'count' => $i); flush(); ob_flush(); sleep(1); } }

El lado del cliente no recibe mensajes progress hasta que se completa el script, momento en el que se activan las secciones de onprogress y de success .

¿Sugerencias?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda