导出javascript不适用于大文件

时间:2016-04-17 10:37:52

标签: javascript

我正在尝试将数据导出到文件。 导出适用于几乎所有文件,但是当我尝试导出大型数据集时,它无法正常工作。

任何线索?

这是代码

a.href = 'data:' + mimeType + ',' + encodeURIComponent(content);
a.setAttribute('download', fileName);
document.body.appendChild(a);
a.click();

1 个答案:

答案 0 :(得分:0)

我使用了以下功能。不知道为什么它解决了这个问题。我想这是一个浏览器。

download(content, fileName, mimeType) {
        var a = document.createElement('a');
        mimeType = mimeType || 'application/octet-stream';

        if (navigator.msSaveBlob) { // IE10
            return navigator.msSaveBlob(new Blob([content], { type: mimeType }),     fileName);
        } else if ('download' in a) { //html5 A[download]
            var csvData = new Blob([content], { type: mimeType });
            var csvUrl = URL.createObjectURL(csvData);
            //a.href = 'data:' + mimeType + ',' + encodeURIComponent(content);
            a.href = csvUrl;
            a.setAttribute('download', fileName);
            document.body.appendChild(a);
            a.click();
            console.log(a);
            //document.body.removeChild(a);
            /*
            setTimeout(function() {
                a.click();
                console.log(a);
                document.body.removeChild(a);
            }, 66);*/

            return true;
        } else { //do iframe dataURL download (old ch+FF):
            var f = document.createElement('iframe');
            document.body.appendChild(f);
            f.src = 'data:' + mimeType + ',' + encodeURIComponent(content);

            setTimeout(function() {
                document.body.removeChild(f);
            }, 333);
            return true;
        }
    },