VUE JS 및 Velocity JS가있는 JavaScript 메모리 누수가 있습니다
-
20-12-2019 - |
문제
나는 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에서 해결됨 페이지 :
제휴하지 않습니다 StackOverflow