marceljuenemann / angular-drag-and-drop-lists

Angular directives for sorting nested lists using the HTML5 Drag & Drop API
MIT License
2.16k stars 713 forks source link

For some reason this has slowed way down #448

Closed mcblum closed 2 years ago

mcblum commented 6 years ago

We're using this awesome package in a few different places in our app, and for the life of me I can't figure out why a couple of the implementations are really slow. Has anyone noticed that some of their drag and drop implementations don't work very smoothly? Maybe CSS or images are slowing it down?

Thank you for any insight.

aidenZhou commented 6 years ago

I encountered this issue recently as well. I am using this package to allow user to drag and drop different questions in a form. Recently one of our user created a form with around 140 questions. Now when he did drag and drop, it is very slow. It this normal? Thank you.

pdemilly commented 6 years ago

Same problem here. I reduced in my app to the simplest list and after a while of moving elements around I am getting some handlers violation. Also I can see duplicates in my list

[Violation] 'drop' handler took 191ms [Violation] 'dragend' handler took 337ms [Violation] 'drop' handler took 1322ms [Violation] 'dragend' handler took 2357ms [Violation] 'drop' handler took 5557ms

And finally a crash telling me the browser was going to get out of memory. I am running angular 1.6.4 with ngAnimate loaded. Here is the HTML.

   <div class="panel">
        <div class="panel-body">
                <ul class="list-group" dnd-list="vm.lists.A">
                        <li ng-repeat="item in vm.lists.A"
                                dnd-draggable="item"
                                dnd-moved="vm.lists.A.splice($index, 1)"
                                dnd-effect-allowed="move"
                                dnd-selected="vm.selected = item"
                                class="list-group-item"
                                ng-class="{'selected': vm.selected === item}">
                                {{item.label}}
                        </li>
                </ul>
        </div>
    </div>

   <div class="panel">
        <div class="panel-body">
                <ul class="list-group" dnd-list="vm.lists.B">
                        <li ng-repeat="item in vm.lists.B"
                                dnd-draggable="item"
                                dnd-moved="vm.lists.B.splice($index, 1)"
                                dnd-effect-allowed="move"
                                dnd-selected="vm.selected = item"
                                class="list-group-item"
                                ng-class="{'selected': vm.selected === item}">
                                {{item.label}}
                        </li>
                </ul>
        </div>
   </div>
chorsnell commented 6 years ago

@mcblum @aidenZhou @pdemilly did you ever resolve this?

abtx commented 5 years ago

Has this been resolved? Doesn't seem like anyone is maintaining this anymore :/

technoSpino commented 2 years ago

I come from the future to tell you that no this will not be resolved