js 拖拽的效率问题

winetu 2009-06-06 07:00:01
由于在项目中需要用到拖拽 所以我采用了dom-drag这个拖拽库,我们这边测试效果非常好,但客户说很卡,要求调整

朋友们帮忙分析下可能造成拖拽卡的原因 不胜感激

有个疑点:每次拖拽,我的程序都要进行三次回调:1.onStart 2.onDrag 3.onEnd 分别代表:开始,进行中,结束
并在每次回调的时候我都要进行几次赋值操作,这点有问题吗
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangtanboy 2009-06-06
  • 打赏
  • 举报
回复
你去问问客户的电脑什么配置嘛.
同一套系统在我自己电脑上跑起来很流畅, 在单位电脑上就成老爷了
winetu 2009-06-06
  • 打赏
  • 举报
回复
我们这边没有觉得卡 不回调与回调效果也是一样的
我在各主流浏览器上做过测试了 也没发现问题

我重写了个跟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);
//
}
xiangtanboy 2009-06-06
  • 打赏
  • 举报
回复
ie差点, ff好点.
386的电脑差点, 586的好点.

说到底还是 onmousedown, onmousemove, onmouseup 三个事件. 要想不卡, 在 onmousemove 的运算一定要精简, 调来调去效率肯定会低
wtcsy 2009-06-06
  • 打赏
  • 举报
回复
只是进行几次赋直应该没问题
我看cloudgamer里面的拖动 的几个回掉 也是几个赋直
但是不存在卡的现象
你可以去看看
http://www.cnblogs.com/cloudgamer/archive/2008/11/17/Drag.html
3个回掉onStart: onMove: onStop:

对了 没有回掉就很卡吗???
monexus 2009-06-06
  • 打赏
  • 举报
回复
要看你的客户用的什么浏览器了,也可能是机器的问题
drag操作一般不会卡的

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧