¿Cómo puedo mejorar este código para eliminar la falta de respuesta / retraso de la página después de seleccionar un archivo del cuadro de diálogo de archivo y hacer clic en Aceptar?
He estado probando archivos con tamaños de alrededor de 50-100 KB
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// files is a FileList of File objects. List some properties.
var output = [];
for (var i = 0, f; f = files[i]; i++) {
output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
f.size, ' bytes, last modified: ',
f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a',
'</li>');
}
document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>
Estoy ejecutando esta página en localhost y estoy usando SSD
Gracias
javascript
html
Joelty
fuente
fuente
<input>
etiqueta no usa y no necesita una barra diagonal de cierre y nunca lo ha hecho en HTML.When happens the lag, before the dialog appears?
después de hacer clicOpen
en el cuadro de diálogo de archivo, así que después de que desaparezcaRespuestas:
Tu código está perfectamente bien. Intente medir el rendimiento para investigar más a fondo:
fuente
Use Promesas en su función handleFileSelect o haga una función asincrónica de la misma.
fuente
Su código funciona y no tiene nada de malo. Solo puede mejorar el rendimiento midiéndolo primero y luego tomando las medidas adecuadas.
Por ejemplo, puede refactorizar el código para un enfoque más limpio:
fuente