为IE8优化JS - String.replace和String.match

时间:2015-12-07 16:39:57

标签: javascript jquery optimization internet-explorer-8

一个网站(遗憾的是我不能在这里提供URL)在每次加载页面时冻结浏览器(IE8)几秒钟。我打开了Developer工具,Profiler选项卡,我看到最耗时的操作是String.match(执行6000-8000次,耗时22秒)和String.replace(执行60000-80000次,耗时23+秒) )。

我怎样才能知道调用这些函数的位置 - 听起来我认为jQuery与选择匹配,但我不确定。

1 个答案:

答案 0 :(得分:0)

  

如何才能了解这些函数的调用位置

您可以在拦截调用的所有其他脚本之上添加一个脚本:

var realReplace = String.prototype.replace;
String.prototype.replace = function() {
    // You can do something here if you like

    return realReplace.apply(this, arguments); // arguments is a predefined symbol (looks like pseudo-code, I know, but it isn't)
};

......和String#match类似。

例如,这为您提供了设置断点的便利位置。

当你完成调试时,你自然会删除它,因为它只会使问题变得更糟。 : - )