虽然我看过这里和其他来源,但我似乎找不到在javascript中使用XMLHttpRequest加载更大的JSON(来自文件)的问题。我从c#应用程序生成此JSON文件,并且从未遇到过无效json的任何问题。较小的文件(1mb - 100mb)加载就好了。我最近有一个用户告诉我他们无法加载他们的文件(295.8mb)并在Firefox中获得allocation size overflow
。
我用一个小脚本测试了这个,可以在这里找到:https://jsfiddle.net/fraguada/6k0k698g/
我在本地运行这个并且可以加载较小的文件而没有问题,而Firefox中的这个文件给我以下错误(jsfiddle中的第8行)
allocation size overflow
callback(xobj.responseText);
在Chrome中,我遇到了其他错误:
Uncaught SyntaxError: Unexpected end of input
(anonymous function) @ index.html:23
xobj.onreadystatechange @ index.html:37
这里,index.html:23指的是js小提琴的第21行(JSON.parse(response)
),而第37行指的是jsfiddle(callback(xobj.responseText);
)中的第8行。
我已经尝试了oboe.js(顺便说一下非常好),但是等了一会儿(3分钟)后,加载停止了(如Chrome开发工具所示),我点击{{1}双簧管回调。
那么,是否可以使用XMLHttpRequest加载这些文件?如果没有,有哪些替代方案呢?我的用户在本地和网络上使用我的应用。虽然我没有计划这么大的json文件,但我也不知道加载这样一个文件会有任何限制(除了可用的ram和带宽)。
编辑:也许最好问: - 什么限制了XMLHttpRequest可以加载的数据量?它是浏览器堆吗?它是客户端上的RAM量吗?它是XMLHttpRequest对象吗?