Вопрос

Я работаю с Velocity.js и vue.js и столкнулся с утечкой памяти.Widdle вопроса: Вы можете увидеть пример в этой скрипке: 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);
});
.

Я использовал функцию временной шкалы Chrome и заметил, что количество узлов DOM никогда не уменьшается, даже когда я принудил сборку мусора.Я начал нырять в Profiler кучу, но это немного над головой.

Когда я нам GenaCodicetacodCode вместо .animate() узлы DOM, кажется, правильно получают GOUC.

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

Также кажется, что извлечение Vue также исправляет проблему.Пример: http://jsfiddle.net/yv6zr/1/ .

Что может вызвать эту утечку памяти?

Это было полезно?

Решение

разрешен на странице github velocity.js:

https://github.com/julianshapiRo/velocity/issues/300 .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top