繁体   English   中英

传递给jQuery.append()的字符串大小是否有限制

[英]Is there a limit on the size of the string passed to jQuery.append()

我在Angular中编写了一个基本程序,它使用路由器功能将两个页面呈现为单页面应用程序。 到目前为止,就是这样。 我有一个页面,其中包含两个用于导航的按钮,以及一个包装div(ng-view),当单击相应的按钮时,该页面填充了两个页面的内容。

当我尝试加载两个页面中较大的一个时,我收到以下错误:

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 )没有提到这样的限制。

笔记:

  1. 我正在使用jQuery版本1.11.0
  2. 我无法更新版本,因为我的团队使用PrimeFaces,这是与PrimeFaces版本匹配的jQuery版本。
  3. 从5830行抛出异常。
  4. 大文件由JSF在服务器端创建。 我无法改变它。
  5. 我尝试使用iframe,但它确实有效。 我的猜测是只使用jQuery附加iframe元素,然后将大内容加载到iframe中。 我的团队负责人不希望我使用iframe,所以这没有帮助。

谢谢。

你要面对的第一个限制是,如果字符串超过512个字节,那么它创建的dom片段不会被缓存。 下一个限制是浏览器中.innerHTML的限制。 但是它非常巨大(高)......但是在附加大量内容的同时,你将面临巨大的滞后(可能需要很长时间才能加载)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM