मैं कई फ़ाइलों को पढ़ने के लिए फ़ाइल रीडर एपीआई का उपयोग कर रहा हूं।एक समय में जावास्क्रिप्ट फ़ाइल रीडर एपीआई के साथ कई फ़ाइलों को पढ़ना
<html> <body>
<input type="file" id="filesx" name="filesx[]"
onchange="readmultifiles(this.files)" multiple=""/>
<div id="bag"><ul/></div>
<script>
window.onload = function() {
if (typeof window.FileReader !== 'function') {
alert("The file API isn't supported on this browser yet.");
}
}
function readmultifiles(files) {
var ul = document.querySelector("#bag>ul");
while (ul.hasChildNodes()) {
ul.removeChild(ul.firstChild);
}
function setup_reader(file) {
var name = file.name;
var reader = new FileReader();
reader.onload = function(e) {
var bin = e.target.result; //get file content
// do sth with text
var li = document.createElement("li");
li.innerHTML = name;
ul.appendChild(li);
}
reader.readAsBinaryString(file);
}
for (var i = 0; i < files.length; i++) { setup_reader(files[i]); }
}
</script> </body> </html>
समस्या यह है कि सभी फाइलों को एक ही समय में पढ़ रहे हैं, और जब फ़ाइलें कुल आकार (योग) कि बहुत बड़ी है, ब्राउज़र क्रैश।
मैं एक फ़ाइल को दूसरे के बाद पढ़ना चाहता हूं, ताकि स्मृति खपत कम हो।
क्या यह संभव है?
क्यों आप एक नया [FileReader] (https नहीं::
बजाय मैन्युअल रूप से प्रत्येक फ़ाइल पर पुनरावृत्ति, यह बहुत सरल & क्लीनर
Object.keys(files)
in ES उपयोग करने के लिए // डेवलपर प्रत्येक पढ़ने के लिए .mozilla.org/en/docs/web/API/fileReader) ऑब्जेक्ट? मेरा मानना है कि फ़ाइल रीडर ऑब्जेक्ट का उपयोग '0' (खाली) से '1' (लोडिंग) से बदलकर, और फिर' 2' (किया गया) के बाद बदला जा सकता है। यह आपको कुछ गंभीर ब्राउज़र कीड़े दे सकता है। – Pacerier