我有一个小型网络应用程序,可以使用一些拖/放功能。想象一下一个小型订单系统,您可以说订单 1(可拖动)将由员工 2(可放置)完成。效果很好。但是:
每 20 秒一次。我通过 AJAX 向数据库询问新订单。这些新订单也将是可拖动的。如果另一所大学下达了雇用员工的命令,则每个员工的订单列表也不会加载。要在 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({
})
}
});
关于javascript - 通过启用新元素的拖放来解决 jquery 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18652149/