2013-09-06 2 views
1

У меня есть небольшое веб-приложение, которое работает с некоторыми функциями перетаскивания. Представьте себе небольшую систему заказов, в которой вы можете сказать, что порядок 1 (перетаскиваемый) будет выполняться сотрудником 2 (droppable). Это прекрасно работает. НО:Проблемы с jquery-производительностью, позволяющие перетаскивать и перетаскивать новые элементы

Каждые 20 секунд. Я запрашиваю базу данных через AJAX для новых заказов. Эти новые заказы также будут перетаскиваться. В случае, если другой колледж предоставил заказ для сотрудника, список заказов для каждого сотрудника также не загружен. Чтобы включить сопротивление/падение после запроса Ajax я должен был бежать:

$('.order').draggable({ 
.. 
}); 

и

$('.employee').dropable({ 
.. 
}); 

Так функция JQuery ходит каждые 20 secunds через отверстие DOM. После 10-15 минут приложение становится очень медленным. У вас есть идея, как повысить этот процесс? Можно ли дать абсолютное утверждение, что каждый класс .order перетаскивается, даже если этот элемент будет создан после первой регистрации?

ответ

1

Спасибо @ Jonas ваша отличная идея сделала это!

Вы можете использовать классы ui-droppable и ui-draggable для этой работы

$('.order').each(function() { 
    var element = $(this); 
    if (!element.hasClass('ui-droppable')) { 

    element.droppable({ 
    ... 
} 
}); 
2

Я думаю, проблема в том, что элементы, которые уже на странице, перетаскиваются снова и снова. Я думаю, что решение было бы присвоить класс тем, что уже есть:

$('.order').each(function() { 
    var element = $(this); 
    if (!element.hasClass('event-already-attached')) { 
     element.addClass('event-already-attached').draggable({ 

     }) 
    } 
}); 
+0

это может быть хорошей идеей! Я постараюсь дать ответ! Благодаря! – Thomas1703

Смежные вопросы