Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

167
Visualizações
El evento XMLHttpRequest onProgress se activa solo cuando el archivo ha terminado de cargarse

Tengo el siguiente código AJAX, el script sube el archivo al servidor correctamente (nodo express). El problema al que me enfrento es que onProgress se activa solo cuando se descarga el byte total (es decir, al final de la carga del archivo) y no durante su progreso.

Actualmente no puedo mostrar en el cliente alguna interfaz de usuario para la progresión de la carga de archivos.

Me gustaría saber si este problema está relacionado con la llamada AJAX o podría estar relacionado con el servidor.

 var formData = new FormData(); var xhr = new XMLHttpRequest(); var onProgress = function (e) { if (e.lengthComputable) { var percentComplete = (e.loaded / e.total) * 100; console.log(percentComplete); } }; var onLoad = function (event) { var reponse = JSON.parse(xhr.responseText); this._logicAddWdg(reponse); }.bind(this); var onError = function (err) { console.log(onError); }; formData.append('file', this._uploaderFile); xhr.addEventListener('error', onError, false); xhr.addEventListener('progress', onProgress, false); xhr.addEventListener('load', onLoad, false); xhr.open('post', '/uploads', true); xhr.send(formData);

Respuesta de los encabezados del servidor:

 Accept-Ranges:bytes Cache-Control:public, max-age=0 Connection:keep-alive Content-Length:5510872 Content-Range:bytes 0-5510871/5510872 Content-Type:video/mp4 Date:Tue, 11 Apr 2017 12:02:20 GMT ETag:W/"5416d8-15b5ce4a545" Last-Modified:Tue, 11 Apr 2017 12:02:20 GMT X-Powered-By:Express Request Headers view source Accept:*/* Accept-Encoding:identity;q=1, *;q=0 Accept-Language:en-US,en;q=0.8 Cache-Control:no-cache Connection:keep-alive Host:localhost:8080 Pragma:no-cache Range:bytes=0-
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Adjunte su controlador de eventos de carga a XMLHttpRequest.upload .

 xhr.upload.addEventListener('progress', onProgress, false);

xhr.upload maneja los eventos de los datos cargados. Lo que tenía antes manejaba el progreso de la descarga de la respuesta.
Todos los demás controladores deben permanecer igual.

about 4 years ago · Santiago Trujillo Relatório

0

¿Lo estás probando en línea o en tu máquina? Si está probando este código localmente y está cargando un archivo bastante pequeño (parece que está cargando un archivo de video de ~5 MB), no puede ver ningún progreso porque el tiempo que llevará cargarlo es proporcional a un simple operación de copiar/pegar realizada en su sistema.

Intente cargar un archivo más grande o pruébelo en línea, su código parece correcto.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda