我试图在IE8上使用Dive Into Python 3修复性能问题。在IE8中访问this page,过了一会儿,您会看到以下弹出窗口:
alt text http://dl.getdropbox.com/u/87045/permalinks/dip3-ie8-perf.png
我在j/dip3.js
... find(“tr:nth-child(”+(i + 1)+“)td:nth-child(2)”);
如果我禁用它(并立即从函数返回),“停止执行此脚本?”对话框没有显示,因为页面加载速度相当快。
我不是Javascript / jquery专家,所以我问其他开发人员为什么这个查询让IE变慢。它有解决方法吗?
修改:您可以下载entire webpage(980K)进行本地查看/编辑。
答案 0 :(得分:0)
这似乎需要一点改写。
nth-child是一个缓慢的操作。您应该通过生成表格中的TD和refs集合中的元素(dip3.js第183行)常见的类或ID来实现当前功能。然后:
refs.each(function(i) {
var a = $(this);
var li = a.parents("pre").next("table").find("td."+a.attr('class'));
li.add(a).hover(function() { a.css(hip); li.css(hip); },
function() { a.css(unhip); li.css(unhip); });
});
答案 1 :(得分:0)
此弹出消息具有误导性 - 它实际上并不意味着IE运行缓慢,但执行的脚本语句数已超过某个阈值。即使脚本执行得非常快,如果超过限制,您仍会看到此消息。摆脱它的唯一方法是减少执行的语句数量或编辑注册表。
http://support.microsoft.com/kb/175500
我发现微软的实施非常烦人。它假设您的计算机速度。