在Firefox 17.0.5中加载大型JSON对象

时间:2013-06-27 18:07:46

标签: ajax json firefox memory

我正在使用以下代码加载一个大型(~300 MB)JSON文件:

$.ajax({
        type: 'GET',
        url: path,
        dataType: 'json',
        data: {},
        async: false, 
        success: function(json_object) {
            console.log("success!");
        } error: function(request, error) {
            console.log(request["statusText"]);
        }
    });

运行它输出“InternalError:allocation size overflow”。有没有办法绕过这个不涉及使文件变小?

1 个答案:

答案 0 :(得分:0)

您需要设置缓冲区。但是,为什么你传递这么多数据呢?对于任何用户来说,这都是非常无理的等待。

修改

缓冲不是你可以从ajax方面做的事情(根据How to buffering an Ajax Request?)。但是,你可以在服务器端设置一些东西(如果它是你的服务器返回数据)将它发送成碎片,然后使用ajax来请求每一块。

如果它不是您的服务器,或者您从API或其他任何地方请求,那么查看它们是否接受任何参数来定义返回对象的大小 - 这样您就可以以块的形式请求它。