jQuery 性能问题,通过为新元素启用拖放
jquery performance issues by enable drag & drop for new elements
我有一个带有一些拖放功能的小型Web应用程序。想象一下一个小订单系统,您可以在其中说订单 1(可拖动)将由员工 2(可拖放)完成。这工作正常。但:
每 20 秒。我通过 AJAX 向数据库询问新订单。这些新订单也将是可拖动的。如果另一所大学下达了命令 en 员工 每个员工的订单清单也不会加载。要在ajax请求后启用拖放,我必须运行:
$('.order').draggable({
..
});
和
$('.employee').dropable({
..
});
因此,jquery 函数每 20 秒通过孔 DOM 遍历一次。10-15分钟后,应用程序变得非常慢。您知道如何为该过程上油吗?是否可以给出一个绝对的声明,即即使此元素将在第一次注册后创建,每个 .order 类都是可拖动的?
我认为问题是页面上已有的元素可以一遍又一遍地拖动。我认为一个解决方案是将一个类分配给那些已经拥有它的人:
$('.order').each(function() {
var element = $(this);
if ( !element.hasClass('event-already-attached')) {
element.addClass('event-already-attached').draggable({
})
}
});
感谢@Jonas你的好主意做到了!
您可以使用该作业的类ui-droppable
和ui-draggable
$('.order').each(function() {
var element = $(this);
if ( !element.hasClass('ui-droppable')) {
element.droppable({
...
}
});
相关文章:
- Jquery 拖放允许 2 个元素
- JavaScript拖放 - 防止元素拖放到另一个可拖放的元素中
- 区分不同的可拖放元素(jQuery 拖放)
- JavaScript/jQuery在两个iframe之间拖放元素
- 在单独的容器中拖放,并调整放置的元素的位置
- 拖放与拖动不同的元素
- 拖放具有触摸支持的元素
- 防止在使用JS拖放时将其放入子元素内
- EaselJS / canvas在拖放过程中更改元素焦点
- 是否可以使用 JavaScript 在 WebBrowser 中拖动 WPF 元素和句柄拖放
- 防止HTML5拖放功能多次放置同一元素
- 花式树拖放 - 获取当前元素
- 由javascript创建的HTML5拖放元素:
- 拖放 - 元素不会拖放
- 是否有最适合“拖放”Web应用程序的元素
- 在 JQuery UI 拖放后查找列表中元素的索引
- 使拖放的元素可放置,同时仍可拖动
- 使用HTML5拖放,有没有办法在保持拖动流的同时隐藏元素
- 如何使用HTML2canvas截取拖放元素的屏幕截图
- 从子元素拖放父元素