一个网站(遗憾的是我不能在这里提供URL)在每次加载页面时冻结浏览器(IE8)几秒钟。我打开了Developer工具,Profiler选项卡,我看到最耗时的操作是String.match(执行6000-8000次,耗时22秒)和String.replace(执行60000-80000次,耗时23+秒) )。
我怎样才能知道调用这些函数的位置 - 听起来我认为jQuery与选择匹配,但我不确定。
答案 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
类似。
例如,这为您提供了设置断点的便利位置。
当你完成调试时,你自然会删除它,因为它只会使问题变得更糟。 : - )