ngAnimate зависает после многократного запуска - PullRequest
0 голосов
/ 05 марта 2019

Стремясь стать лучше в AngularJS - я начал создавать некоторые компоненты многократного использования.Компонент, над которым я сейчас работаю, это слайдер / вращение изображения.Я создал jsfiddle, чтобы воспроизвести проблему, с которой я сталкиваюсь.

Пример слайдера изображений

Я использую animationend для захвата после перехода изображений.

Если вы откроете консоль и затем щелкнитена стрелках «следующий» или «предыдущий» изображение будет переходить в следующий, а затем в консоли появится текст «в конце анимации» (вам придется подождать, пока анимация не закончится, чтобы щелкнуть снова).Если вы продолжите нажимать примерно 16 раз, анимация начнет работать все медленнее и медленнее и станет практически непригодной для использования примерно 18 раз (я использую Chrome).Я попытался сделать снимки памяти, чтобы увидеть, что происходит - или даже добавил «разрывы» в код, чтобы попытаться пройтись, чтобы увидеть, не является ли что-то необычным, но еще не нашел ничего, что выделяется.

Если я уберу анимацию css и просто переключусь между изображениями без какого-либо перехода, то ползунок будет работать нормально - но что хорошего в слайдере изображений без причудливого перехода?

1 Ответ

0 голосов
/ 05 марта 2019

Похоже, что, непрерывно копируя функцию ctrl, слайдер медленно увеличивает объем памяти.Если я изменю код с добавления полного ctrl на hy-слайдер на добавление только простого старого объекта javascript, тогда память останется неизменной - я скоро добавлю jsfiddle.

...