Zur Zeit verwende ich ein Muster wie die im Anschluss an die ersten drei Zeichen einer Reihe von Dateien zu lesen:html5 fileReader - wie liest man nur die ersten N Zeichen einer Datei?
var files = e.dataTransfer.files;
for (var i = 0, f; f = files[i]; i++) {
var fr = new FileReader();
fr.onload = function(e) {
var first_three_chars = e.target.result.substr(0,3);
}
fr.readAsText(f);
}
Das Problem ist, dass ich nur in den ersten drei Zeichen der Datei, während dieser Methode interessiert liest die gesamte Datei und verschwendet viel Speicher und Zeit. Wie kann ich schnell über die Dateien iterieren, indem ich schnell die ersten Zeichen betrachte?
Edit: slice() war die Antwort, danke sshen. Hier ist, wie ich es gemacht habe:
var files = e.dataTransfer.files;
for (var i = 0, f; f = files[i]; i++) {
var fr = new FileReader();
fr.onloadend = function(e) {
if (e.target.readyState == FileReader.DONE) {
var first_three_chars = e.target.result;
}
};
var blob = f.slice(0, 3);
fr.readAsText(blob);
}
Ich denke, der Code hier fehlt Details (wo bekommen Sie die 'Datei' var?), Aber der Link zur Verfügung gestellt ist perfekt. +1 –
'var file = document.getElementById ('myFile') .Dateien [0];' –
@Noodle, Ist das jedoch performant? – Pacerier