为什么RegExp.test在IE中消耗了大量时间?

时间:2013-07-26 16:47:13

标签: javascript jquery performance internet-explorer

当使用jQuery将HTML加载到元素中时,我发现IE中的性能非常差。 Chrome未显示任何性能问题。更改IE浏览器模式似乎不会提高性能。

在IE中运行探查器时,我发现大部分时间都花在RegExp.test函数上。

HTML:
<div id="content"></div>

JavaScript:
var htmlString = <div>...Lots and lots of content...</div> {
{1}}

  • jQuery版本:1.9.1
  • IE版:9

2 个答案:

答案 0 :(得分:2)

加载大量内容时,请不要以开始标记开头,并以结束标记结束。

将内容更改为: var htmlString = <div></div><div>...Lots and lots of content...</div>

在研究问题后,我发现这个jQuery错误请求指出了我正确的方向。 jQuery Ticket#11456

似乎对于IE兼容性,JavaScript RegExp用于解析正在加载的内容。当内容以标记开头时,它会尝试查找结束标记(或类似内容)。如果数据量很大,则执行此解析可能需要很长时间。我通过在开头放空来解决我的问题。

答案 1 :(得分:0)

更新JQuery可能会有所帮助。

应该修复JQuery&gt; = 1.12.0 / 2.2.0

的问题