Jak mogę poprawić ten kod, aby usunąć brak odpowiedzi / opóźnienie strony po wybraniu pliku z okna dialogowego pliku i kliknięciu OK?
Testowałem pliki o rozmiarach około 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>
Korzystam z tej strony na localhost i używam SSD
Dzięki
javascript
html
Joelty
źródło
źródło
<input>
znacznik nie używa i nie potrzebuje ukośnika zamykającego i nigdy nie ma w HTML.When happens the lag, before the dialog appears?
po kliknięciuOpen
w oknie dialogowym pliku, więc po jego zniknięciuOdpowiedzi:
Twój kod jest w porządku. Spróbuj zmierzyć wydajność, aby dowiedzieć się więcej:
źródło
Użyj obietnic w funkcji handleFileSelect lub włącz funkcję asynchroniczną .
źródło
Twój kod działa i nie ma w tym nic złego. Możesz poprawić wydajność, najpierw mierząc go, a następnie podejmując odpowiednie działania.
Na przykład możesz zmienić kod na czystszy -
źródło