Vue JS 和 Velocity JS 的 Javascript 内存泄漏

标签 javascript jquery vue.js velocity.js

我一直在使用 Velocity.js 和 Vue.js 并遇到内存泄漏。问题的 fiddle :您可以在这个 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);
});

我使用了 Chrome 的时间线功能,发现 DOM 节点的数量永远不会减少,即使我强制进行垃圾回收也是如此。我开始深入研究堆分析器,但它有点超出我的能力范围。

当我使用 .animate() 而不是 .velocity() 时,DOM 节点似乎正确地进行了 GC。

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

似乎删除 Vue 也可以解决该问题。示例:http://jsfiddle.net/yV6Zr/1/ .

什么可能导致内存泄漏?

最佳答案

已在velocity.js GitHub 页面上解决:

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

关于Vue JS 和 Velocity JS 的 Javascript 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25004190/

相关文章:

jquery - 尽管有媒体查询,但在窗口调整大小后仍显示切换元素

javascript - Javascript 无法识别 HTML 表单输入?

javascript - 如何在react-redux上混合数组?

javascript - 在 React 中,单击后设置元素的样式不起作用

java - 如何获取 thymeleaf 中的内容路径?

javascript - 页面刷新时的 Vuex 状态

javascript - V-for 单击所有按钮而不是仅单击一个按钮

javascript - 将值从组件 data() 传递到其他文件

javascript - 如何在表格 Angular 中将 td limit 按 2 切片

javascript - 高 map 中的动态悬停颜色