2

我有一个相当大的 JavaScript 文件,其中包含通过脚本标签加载的 JSONP 数据 (27 MB)。这适用于除 Firefox 之外的所有浏览器,它拒绝加载文件(错误是“switch statement too large”,尽管那里没有 switch)。但它适用于较小的文件(2MB)。

Firefox 中 JavaScript 文件的最大文件大小是多少,所以我可以对文件进行分区并绕过这个边界?

4

4 回答 4

3

在从我现在不记得的网站中终止大型 JavaScript 文件的流式传输后,我只看到过一次此错误。

有什么理由必须一次加载完整文件吗?例如,您可以将它分成 2MB 的部分进行流式传输,并被类似的东西包围

(function() {
    myJsonData += "..... 2MB of your code ...";
})();

注意:您必须myJsonData在全局上下文中定义才能跟踪它!

在此之后,您只需要一些完成语句和回调,即发送您的最后一条数据,如下所示:

(function() {
    myJsonData += "..... 2MB of your code ...";
    // Trigger callback which works with the json data
    myCallbackFunction();
})();

这就是我尝试解决此错误的方式。

于 2012-05-16T11:16:42.083 回答
0

或绕过限制和缓慢加载:只需压缩数据(在服务器上一次);客户端的浏览器读取文件并解压缩。

两者都在大约 70 行代码中起作用:

http://rosettacode.org/wiki/LZW_compression#JavaScript

于 2014-02-04T21:46:17.423 回答
0

enter code here我认为最大为 20MB

(function() {
    myJsonData += "..... 2MB of your code ...";
    // Tr`enter code here`igger callback which works with the json data
    myCallbackFunction();
})();
于 2012-05-18T08:41:06.697 回答
0

一些关于移动浏览器的测试 - 在台式机上检查也很有趣:脚本大小与浏览器缓存中的脚本

http://www.stevesouders.com/blog/2010/07/12/mobile-cache-file-sizes/

于 2014-02-04T20:01:27.050 回答