문제

나는 Velocity.js 및 vue.js로 작업하고 메모리 누수로 실행되었습니다.이 문제의 바이올린 :이 fiddle에서 예제를 볼 수 있습니다 : http://jsfiddle.net/hran7/3/

$(function () {

    var ExtVue = Vue.extend({
        'template': '#template',
        'replace': true
    });

    var currVue;

    setInterval(function () {
        var nextVue = new ExtVue();
        nextVue.$appendTo($('body').get(0));

        $(nextVue.$el).velocity({
            'left': '0'
        }, 0, callback);

        function callback() {
            if (currVue)
                currVue.$destroy();
            currVue = nextVue;
        }

    }, 10);
});
.

나는 크롬의 타임 라인 기능을 사용하고 가비지 수집을 강요하더라도 DOM 노드 수가 감소하지 않는다는 것을 알아 차렸다.나는 힙 프로파일러로 다이빙을 시작했지만 그것은 내 머리를 조금 넘는다.

.animate() 대신 .velocity()를 사용하면 DOM 노드가 올바르게 유지되는 것 같습니다.

$(nextVue.$el).animate({
    'left': '0'
}, 0, callback);
.

vue 제거는 또한 문제를 해결하는 것 같습니다.예 : "Nofollow"> http://jsfiddle.net/yv6zr/1/1/A>.

이 메모리 누수를 일으킬 수 있습니까?

도움이 되었습니까?

해결책

velocity.js gitHub에서 해결됨 페이지 :

https://github.com/julianshapiro/velocity/issues/300 <./ P>

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top