Javascript 使用XMLHttpRequest加载大型json文件(250mb+;)

Javascript 使用XMLHttpRequest加载大型json文件(250mb+;),javascript,json,xmlhttprequest,Javascript,Json,Xmlhttprequest,虽然我在这里和其他源代码中进行了查看,但似乎无法找到在javascript中使用XMLHttpRequest加载更大JSON(从文件)的问题。我从一个c#应用程序生成这个JSON文件,从来没有遇到过任何JSON无效的问题。较小的文件(1mb-100mb)可以正常加载。最近有一位用户告诉我,他们无法加载文件(295.8mb),并且在Firefox中出现分配大小溢出 我用一个小脚本对此进行了测试,可以在这里找到: 我在本地运行这个程序,可以加载较小的文件而没有问题,而Firefox中的这个文件给了我

虽然我在这里和其他源代码中进行了查看,但似乎无法找到在javascript中使用XMLHttpRequest加载更大JSON(从文件)的问题。我从一个c#应用程序生成这个JSON文件,从来没有遇到过任何JSON无效的问题。较小的文件(1mb-100mb)可以正常加载。最近有一位用户告诉我,他们无法加载文件(295.8mb),并且在Firefox中出现
分配大小溢出

我用一个小脚本对此进行了测试,可以在这里找到:

我在本地运行这个程序,可以加载较小的文件而没有问题,而Firefox中的这个文件给了我以下错误(JSFIDLE中的第8行)

在Chrome中,我得到一个不同的错误:

Uncaught SyntaxError: Unexpected end of input
(anonymous function) @ index.html:23 
xobj.onreadystatechange @ index.html:37
这里,index.html:23表示js FIDLE的第21行(
JSON.parse(response)
),第37行表示JSFIDLE的第8行(
callback(xobj.responseText);

我已经尝试过(顺便说一句,非常好),但在等待了一段时间(3分钟)后,加载停止(如Chrome开发工具所示),我在双簧管中点击了
.fail
回调

那么,可以用XMLHttpRequest加载这样的文件吗?如果没有,有哪些替代方案?我的用户正在本地和网络上使用我的应用程序。虽然我没有计划加载这么大的json文件,但我也不知道加载这样的文件会有任何限制(除了可用的ram和带宽)

编辑:也许最好问一下:
-什么限制了XMLHttpRequest可以加载的数据量?是浏览器堆吗?是客户机上的RAM量吗?它是XMLHttpRequest对象吗?

我发现任何超过10mb的数据都会比单从规模上看要慢得多。250MB可能是不可能的。正如我提到的,加载1mb-100mb的文件很好。我有一个进度条,告诉用户正在发生什么。只是这个295mb的文件出了问题。这仍然不是一个好主意。GMail收件箱的大小可能有几GB,而GMail web应用程序就是这样的浏览器。不过,它并没有在显示内容之前下载所有内容。我看到网上有几处提到“默认情况下,v8在32位系统上的内存限制为512MB,在64位系统上的内存限制为1.4GB”。由于unicode每个字符使用2个字节,因此250mb的字符串似乎对32位系统有限制,即使没有解析对象使用的RAM也是如此。值得一提的是,Oboe.js在引擎盖下使用了XMLHttpRequest,因此限制可能来自于此:)我发现任何超过10mb的系统都开始减速,而不仅仅是规模。250MB可能是不可能的。正如我提到的,加载1mb-100mb的文件很好。我有一个进度条,告诉用户正在发生什么。只是这个295mb的文件出了问题。这仍然不是一个好主意。GMail收件箱的大小可能有几GB,而GMail web应用程序就是这样的浏览器。不过,它并没有在显示内容之前下载所有内容。我看到网上有几处提到“默认情况下,v8在32位系统上的内存限制为512MB,在64位系统上的内存限制为1.4GB”。由于unicode每个字符使用2个字节,因此即使没有解析对象使用的RAM,250mb字符串似乎也会限制32位系统。值得一提的是,Oboe.js在引擎盖下使用了XMLHttpRequest,因此限制可能来自于此:)
Uncaught SyntaxError: Unexpected end of input
(anonymous function) @ index.html:23 
xobj.onreadystatechange @ index.html:37