내 Angular 1.5 앱에서는 다른 서비스에서 다시 사용할 수 있도록 객체 또는 배열에 데이터를 저장하는 경우가 있습니다.내 서비스의 데이터를 효과적으로 메모리별로 재설정 할 수 있습니까?
(function() {
'use strict';
angular
.module('myApp')
.factory('TemplateList', TemplateList);
function TemplateList() {
var templates = {};
}
})();
이 데이터를 지우고 다시 시작해야 할 때가 있습니다.
나는이 3의 기술은 가비지 컬렉션의 이용 효율을 최고로 것이다 확실하지 오전 :
- 템플릿 = {};
그냥 빈 개체로 지정하십시오.
Object.assign (templates, {}); 새 ES6 기능을 사용하여 빈 개체로 지정합니다.
angular.copy ({}, 템플릿) 사용은 각 기능 또한
, 그것은 더 복잡한 경우가 무엇인지 경우 내장? 예를 들어 기본 데이터가 있습니다. 예 :
var defaultData = { name: null, id: null };
templates = { name: 'hi', id: 5 }
이렇게하면 효과가 없을 때마다 templates = defaultData
입니다. 내 상황에서 가장 좋은 3 가지 기술은 어느 것입니까?
'templates = {}' 메모리와 링크가 풀리면 GC가 메모리를 찾은 다음 메모리 내의 데이터를 삭제합니다. – sheplu
조금 더 복잡하면 어떨까요? 예를 들어 기본 데이터가 있습니다. var defaultData = {name : null, id : null}; templates = {name : 'hi', id : 5} 이럴 때마다 템플릿 = defaultData가 좋지 않을까요? – user1261710
변수와 메모리 사이의 참조를 풀면됩니다. GC는 '표시 및 스윕'이라고하는 것을 사용하여 메모리를 비 웁니다. MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management에서 더 많은 것들을 찾을 수 있습니다. – sheplu