由于在项目中需要用到拖拽 所以我采用了dom-drag这个拖拽库,我们这边测试效果非常好,但客户说很卡,要求调整朋友们帮忙分析下可能造成拖拽卡的原因 不胜感激有个疑点:每次拖拽,我的程序都要进行三次回调:1.onStart  2.onDrag  3.onEnd  分别代表:开始,进行中,结束
并在每次回调的时候我都要进行几次赋值操作,这点有问题吗

解决方案 »

  1.   

    要看你的客户用的什么浏览器了,也可能是机器的问题
    drag操作一般不会卡的
      

  2.   

    只是进行几次赋直应该没问题
    我看cloudgamer里面的拖动 的几个回掉 也是几个赋直  
    但是不存在卡的现象
    你可以去看看
    http://www.cnblogs.com/cloudgamer/archive/2008/11/17/Drag.html
    3个回掉onStart: onMove:  onStop:对了  没有回掉就很卡吗???
      

  3.   

    ie差点, ff好点.
    386的电脑差点, 586的好点.说到底还是 onmousedown, onmousemove, onmouseup 三个事件. 要想不卡, 在 onmousemove 的运算一定要精简, 调来调去效率肯定会低
      

  4.   

    我们这边没有觉得卡 不回调与回调效果也是一样的
    我在各主流浏览器上做过测试了 也没发现问题我重写了个跟dom-drag功能一样的类 效果也是一样  难道是我回调时的操作问题?下面是我的三次回调操作:arr[i].onDragStart = function(x,y){
          DragStartPos['x'] = x;
          DragStartPos['y'] = y;
          
          
          for(j=0;j<arr.length;j++){
            arr[j].style.zIndex=999;
          }
          document.getElementById(id).style.zIndex=1000;
        }
        arr[i].onDrag = function(x,y){
            jQuery("#"+id).addClass("sd_f");
        jQuery("#"+id).removeClass("wform");
        }
        arr[i].onDragEnd = function(x,y){
          DragEndPos['x'] = x;
          DragEndPos['y'] = y;
           jQuery("#"+id).addClass("wform");
       jQuery("#"+id).removeClass("sd_f");
            action = new Action(id,"drag",DragStartPos,DragEndPos);
          //把动作信息放入actionStack(动作栈)
          actionStack.push(action);
          //
        }