Comment puis-je améliorer ce code afin de supprimer l'absence de réponse / décalage de page après avoir sélectionné un fichier dans la boîte de dialogue de fichier et cliqué sur OK?
J'ai testé des fichiers d'une taille d'environ 50 à 100 Ko
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>
J'exécute cette page sur localhost et j'utilise SSD
Merci
javascript
html
Joelty
la source
la source
<input>
balise n'utilise pas et n'a pas besoin d'une barre oblique de fermeture et n'a jamais en HTML.When happens the lag, before the dialog appears?
après avoir cliquéOpen
sur la boîte de dialogue du fichier, donc après sa disparitionRéponses:
Votre code est parfaitement bien. Essayez de mesurer les performances pour approfondir:
la source
Utilisez Promises dans votre fonction handleFileSelect ou faites -en une fonction asynchrone .
la source
Votre code fonctionne et il n'y a rien de mal à cela.Vous ne pouvez améliorer les performances qu'en le mesurant d'abord, puis en prenant les mesures appropriées.
Par exemple, vous pouvez refactoriser le code pour une approche plus propre -
la source