Şu anda böyle bir kalıp kullanmak dosyaların bir dizinin ilk 3 karakterini okumak için aşağıdaki: Bu yöntemde ise,html5 fileReader - Bir dosyanın sadece ilk N harfini nasıl okunur?
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);
}
Sorun, dosyanın ilk 3 karakterden ilgileniyorum sadece olmasıdır tüm dosyayı okur, çok fazla bellek ve zaman harcar. İlk karakterlere hızlı bir şekilde göz atmak için dosyaları nasıl hızlı bir şekilde yineleyebilirim?
Düzeltme: slice() yanıt oldu, teşekkürler sshen. İşte nasıl yaptık:
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);
}
Buradaki kodun ayrıntılardan yoksun olduğunu düşünüyorum (dosya türünü nereden alıyorsunuz?) Ama sağlanan bağlantı mükemmel. +1 –
'var file = document.getElementById ('myFile') dosyaları [0];' –
@Noodle, Yine de bu performans açısından mı yapılır? – Pacerier