4

某些东西使我在 IE6 中的 Javascript 代码减慢到悬停时明显滞后的地方。在 FF 中很好,所以使用 firebug 并没有那么有用。有哪些工具可以帮助在 IE 中进行调试?

更多信息:我认为实际上没有任何 JS 在我鼠标悬停的对象上运行。(至少我没有放入。)只是 css :hover 的东西。另外,我在项目上同时运行了 jquery 和 dojo,所以谁知道他们在后台做什么。

4

6 回答 6

4

只是那个“东西”可能是什么的提示......

IE 中的字符串连接(或至少在我测试时)非常慢。Opera 0.2s 完成,Firefox 4.1s 和 Internet Explorer 7 20分钟后仍然没有完成!!!

不要这样做:

for (var i=0, i < 200; i++) { s = s + "something";}

相反,暂时使用一个数组,然后加入它:

var s=[];
for (var i=0; i < 200; i++) s.push("something");
s=s.join("");
于 2008-11-19T03:44:25.577 回答
4

我通常做的是:

var startTime = new Date();
// Lots of heavy code here
console.log("Processing time: ", new Date() - startTime, " ms");

你可以让Firebug lite让 console.log 跨浏览器工作。这让您了解代码的任何给定部分需要多长时间才能执行。

一旦你知道哪个是错误的部分,你可以探索修复它的选项。

于 2008-11-19T14:34:02.083 回答
1

Microsoft Script Debugger,另请参阅IEBlog以获取提示

于 2008-11-18T22:36:42.033 回答
0

滞后也可能来自 DOM 更新。当 IE 由于 DOM 更改而需要重新渲染页面时,它可能会明显比 Firefox 慢。通常,当这种情况发生时,光标会冻结。

于 2008-11-19T15:51:19.293 回答
0

考虑到快速的 firefox 和慢速的 IE,xpath 表达式和事件处理程序(确保您获得正确数量的调用,而不是预期数量的 10 倍)是手动插入计时器的好地方。

于 2008-11-19T16:08:11.397 回答
0

我想我已经为任何好奇的人找到了减速的根源:我正在使用bgiframe来解决 IE6 选择框 z-index 问题(在 SO的其他地方讨论)。

于 2008-11-21T21:12:22.263 回答