在IE6中,我的Javascript代码速度有所降低,而且悬停时间明显滞后。它在FF中很好,所以使用firebug并没有那么有用。有哪些工具可以帮助在IE中调试它?
多一点信息:我认为实际上没有任何JS在我正在调整的对象上运行。 (至少我没有投入。)只是css:悬停的东西。另外,我在项目上运行了jquery和dojo,所以谁知道他们在后台做了什么。
答案 0 :(得分:4)
只是提示“某事”可能是什么......
IE中的字符串连接是(或者至少在我tested时)非常慢。 Opera在0.2秒后完成,Firefox在4.1秒后完成,而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("");
答案 1 :(得分:4)
我通常做的是:
var startTime = new Date();
// Lots of heavy code here
console.log("Processing time: ", new Date() - startTime, " ms");
您可以Firebug lite让console.log在浏览器中运行。这使您可以了解代码的任何给定部分执行的时间。
一旦你知道哪个是错误的部分,你可以探索修复它的选项。
答案 2 :(得分:1)
Microsoft Script Debugger,另请参阅IEBlog了解提示
答案 3 :(得分:0)
延迟也可能来自DOM更新。当IE由于DOM更改而需要重新呈现页面时,它可能明显慢于Firefox。通常,当发生这种情况时,光标将冻结。
答案 4 :(得分:0)
鉴于快速的Firefox和缓慢的IE,xpath表达式和事件处理程序(确保获得正确的调用次数,而不是预期数量的10倍)是手动插入计时器的好地方。
答案 5 :(得分:0)
我想我已经找到了任何好奇的人的减速源:我正在使用bgiframe解决IE6选择框z-index问题(discussed elsewhere上的问题)。