加载大型JSON文件时出现问题

时间:2014-02-07 23:04:30

标签: javascript json

我正在尝试将大型JSON文件加载到javascript中的数据结构中。为了避免阻塞浏览器,我将数据读取循环拆分为块。但我仍然得到一个阻止浏览器。这是我的代码。

function loadTransformation(){  
    $.getJSON('transformation.json', function(data) {
    var NUMBER_OF_RECORDS = data.length;
    var CHUNK = 100;
    var i = 0;
    readData();
    function readData(){
        var cnt = CHUNK;    
        while(i < NUMBER_OF_RECORDS && cnt--){
            // Do some loading stuff here
            i++;
        } // end of while
        if(i < NUMBER_OF_RECORDS) {
            setTimeout(readData(), 1);
        }
    }
    });
}

我不明白我的代码有什么问题。

2 个答案:

答案 0 :(得分:1)

你可以尝试一下:

  setTimeout(readData, 1000);

Read about JavaScript window.setTimeout here...

您已拨打readData()作为setTimeout的第一个参数,这不是我想要的......

答案 1 :(得分:1)

您可能需要查看Oboe.js。它是一个在Node.js和Web浏览器下运行的库,用于使用流加载JSON。这意味着您可以在完全下载之前开始处理JSON数据。