Mir*_*cea 1 javascript performance jquery
我在jQuery可拖动函数中执行了"for"函数.从执行时间的角度来看,有更好的方法吗?我的功能是:
$("#dragger").draggable({
containment: '#timeline',
axis: 'x',
drag: function(event, ui) {
var divs = $("#timeline div.timeline");
for (var i=0, il=divs.length; i<il; i++) {
var layer = '#layer'+i,
gow = layer+"Go";
SelectClosestKeyframes(this, event, ui, $(layer), $(gow));
}
}
});
Run Code Online (Sandbox Code Playgroud)
我可以改善for (var i=0, il=divs.length; i<il; i++)
Thanx 吗?
考虑到你在循环中所做的事情,尝试优化循环机制是没有意义的.首先,我怀疑你无论如何都能明显改善它,第二,因为这个循环代码的成本与所有那些jQuery调用的代价相比相形见绌.
你从找到一堆<div>元素开始.然后迭代该列表,但您的代码根本不使用"divs"数组.相反,它每次迭代还会再进行2次jQuery查找(尽管它们基于元素id非常便宜),以及该函数中的任何工作.
您是如何得出循环需要"优化"的结论的?页面速度慢吗?如果是这样,那么我会查看"SetClosestKeyframes"函数并查看它的作用.除非有几百万个"div.timeline"元素,否则你的问题不在于循环本身.