Dans mon application Angular 1.5, je stocke souvent les données dans un objet ou un tableau afin de pouvoir les réutiliser dans un autre service.Comment puis-je réinitialiser les données dans mes services efficacement mémoire-sage - Angulaire?
(function() {
'use strict';
angular
.module('myApp')
.factory('TemplateList', TemplateList);
function TemplateList() {
var templates = {};
}
})();
Il y a des fois où j'ai besoin d'effacer ces données et recommencer à zéro.
Je ne sais pas quelle technique de ces 3 sera le meilleur en termes de collecte des ordures et de l'efficacité:
- templates = {};
Affectez-le de nouveau à un objet vide.
Object.assign (modèles, {}); Utilisez la nouvelle fonction ES6 pour l'affecter à un objet vide.
angular.copy ({}, modèles) Utilisez le construit en fonction angulaire
En outre, s'il est un cas plus compliqué? Par exemple, j'ai des données par défaut, par ex.
var defaultData = { name: null, id: null };
templates = { name: 'hi', id: 5 }
Si je le fais chaque fois templates = defaultData
qui ne sera pas efficace. Laquelle des trois techniques est la meilleure dans ma situation?
'templates = {}' Vous perdrez le lien avec votre mémoire, le GC le trouvera et supprimera les données dans votre mémoire. – sheplu
Et si c'est un peu plus compliqué? Par exemple, j'ai des données par défaut, par exemple. var defaultData = {nom: null, id: null}; templates = {nom: 'hi', id: 5} Si je fais cela à chaque fois templates = defaultData qui ne sera pas bon non? – user1261710
vous avez juste besoin de perdre la référence entre votre variable et la mémoire. Le GC utilisera ce que nous appelons «marquer et balayer» pour libérer votre mémoire. Vous trouverez plus de choses sur MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management – sheplu