为什么RegExp.test在IE中花费大量时间

Why is RegExp.test consuming a lot of time in IE?

本文关键字:时间 RegExp test IE 为什么      更新时间:2023-09-26

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

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

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

JavaScript:
var htmlString = <div>...Lots and lots of content...</div>
$('#content').html(htmlString);

  • jQuery版本:1.9.1
  • IE版本:9

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

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

在研究了这个问题之后,我发现了这个jQuery错误请求,它为我指明了正确的方向。jQuery票证#11456

似乎为了与IE兼容,JavaScript RegExp用于解析正在加载的内容。当内容以标签开始时,它会试图找到结束标签(或类似的东西)。如果数据量很大,那么进行解析可能需要相当长的时间。我一开始就放了一个空位,解决了我的问题。

更新JQuery可能会有所帮助。

  • 问题:html()使用的正则表达式在IE>9中表现不佳
  • 此处介绍:2012年提交,影响JQuery>=1.8.0

JQuery>=1.12.0/2.2.0

应修复该问题