jQuery/Javascript"for"功能性能改进

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 吗?

Poi*_*nty 5

考虑到你在循环中所做的事情,尝试优化循环机制是没有意义的.首先,我怀疑你无论如何都能明显改善它,第二,因为这个循环代码的成本与所有那些jQuery调用的代价相比相形见绌.

你从找到一堆<div>元素开始.然后迭代该列表,但您的代码根本不使用"divs"数组.相反,它每次迭代还会再进行2次jQuery查找(尽管它们基于元素id非常便宜),以及该函数中的任何工作.

您是如何得出循环需要"优化"的结论的?页面速度慢吗?如果是这样,那么我会查看"SetClosestKeyframes"函数并查看它的作用.除非有几百万个"div.timeline"元素,否则你的问题不在于循环本身.