如何仅使用Javascript处理大型XML文件?

时间:2017-07-13 13:49:42

标签: javascript xml google-chrome ram

我目前正在尝试编写一个工具,使用Just Google Chrome和Javascript浏览并查找本地900+ MB XML文件中的某些节点。由于无法直接访问本地文件,我设置了一个文件输入元素,我用FileReader API读取,然后将其解析为XML。

在阅读文件时,Chrome会崩溃,因为已达到RAM限制。这似乎是浏览器实现的限制,因为到目前为止还没有达到我的计算机的Ram限制。这是我的代码:

let xmlFile = "";
let fileInput = document.getElementById('fileInput');
let fileReader = new FileReader();
let readProgress = document.getElementById('readProgress');

fileInput.addEventListener('change', readFile);

function readFile(){
    let f = fileInput.files[0];
    fileReader.readAsText(f);

}

fileReader.onload = function(event){
    xmlFile = $.parseXML(event.target.result);
    console.log(xmlFile);
    console.log('done');
}


fileReader.onprogress = function(event){
    let percent;
    percent = event.loaded/event.total*100;
    readProgress.textContent = percent;
}

有没有办法增加Chrome内存限制,还是有更好的方法来处理这么大的XML文件?

先谢谢

Barneo

0 个答案:

没有答案