传递给jQuery.append()的字符串的大小是否有限制?
Is there a limit on the size of the string passed to jQuery.append()
我在Angular中编写了一个基本的程序,它使用路由器功能将两个页面作为一个单页应用程序呈现。到目前为止,这就是它所做的一切。我有一个包含两个导航按钮的页面,以及一个包装器div (ng-view),当单击各自的按钮时,该包装器div填充两个页面的内容。
当我尝试加载两个页面中较大的一个时,我得到以下错误:
SyntaxError: Unexpected token <
这个错误是从angular.js:11594抛出的(我使用的是1.3.9版本)。调试后,我发现jQuery抛出了一个异常,从代码:
this.empty().append( value );
我查看了输入参数"value",它非常大。它包含超过11,000行,大小为1.59 MB。
我在html格式检查器(http://www.freeformatter.com/)中运行输入字符串。格式很好,没有额外的开始标记。
是否有可能jQuery的方法不能处理这么大的字符串?我在Google上搜索了这样的限制,但我所能找到的都是使用jQuery应用限制的建议,而且文档(http://devdocs.io/jquery/append)没有提到这样的限制。
指出:
- 我正在使用jQuery版本1.11.0
- 我无法更新版本,因为我的团队使用的是PrimeFaces,而这是与PrimeFaces版本匹配的jQuery版本。 异常从第5830行抛出。这个大文件是由JSF在服务器端创建的。我不能改变它。
- 我尝试使用iframes,它工作。我的猜测是,使用jQuery只添加了一个iframe元素,然后将大内容加载到iframe中。我的团队领导不希望我使用iframe,所以这没有用。
谢谢。
您将面临的第一个限制是,如果字符串超过512字节,那么由它创建的dom片段不会被缓存。下一个限制是. innerhtml在浏览器中的限制。但它相当大(高)……但是,当添加大量内容时,您将面临巨大的滞后(可能需要很长时间才能加载)。
相关文章:
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- 如何在 AngularJS 中检查字符串是否为空
- $.ajax 检查返回字符串是否为“错误”
- 检查字符串是否在字典内的数组中
- 检查字符串是否包含计算
- 验证字符串是否仅包含 javascript 中的某些字符
- 检查字符串是否等于一个单词和一个数字
- 如何检查字符串是否包含非英语字符列表
- 检查字符串是否包含数组中的某个字符串
- 检测字符串是否与格式说明符字符串匹配
- 如何在javascript中测试字符串是否包含带正则表达式的数字
- 如何检查字符串是否为回文JavaScript〔CLOSED!〕
- 检查字符串是否为有效的html标记
- 检查用户输入的字符串是否准确
- Javascript正则表达式,用于检查字符串是否为有效数字
- 使用AngularJS和Angular Translate如何检查字符串是否已被翻译
- If.else语句检查NaN和空字符串是否在JavaScript中不起作用
- Javascript Regex检查字符串是否包含不属于的单词
- 检查长度为5的子字符串是否在另一个字符串中(已重构)
- 如何检查 NS 字符串是否包含 javascript 函数