recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Comment comprendre la capacité d'AngularJs $cacheFactory


Comment comprendre les mots dans l'image, il est préférable d'avoir une démo

J'ai écrit une démo qui dépassait la limite de capacité : 3, mais la taille imprimée par cache.info() est la même à chaque fois. De plus, la clé dans $cacheFactory(key,[option]) peut-elle être uniquement une chaîne Comment définir plusieurs objets de cache à la fois

过去多啦不再A梦过去多啦不再A梦2846 Il y a quelques jours579

répondre à tous(2)je répondrai

  • 大家讲道理

    大家讲道理2017-05-15 17:14:19

    Capacité équivaut à spécifier une capacité maximale utilisable pour le cache.
    Pour un exemple simple, si vous avez 3 seaux (capacité=3) et que vous remplissez le premier seau d'eau (mis), alors il y a toujours 3 seaux. Remplissez un autre seau d'eau jusqu'à ce que le quatrième seau d'eau soit rempli. Puisqu'il n'y a que 3 seaux, il est évident que ce seau d'eau ne peut pas être rempli. Que dois-je faire ? Videz le premier seau d'eau et utilisez ce seau pour contenir le quatrième seau d'eau (stratégie de cache : LRU)
    Vous pouvez jeter un œil à l'implémentation de $cacheFatory, vous devriez avoir une compréhension plus approfondie

    répondre
    0
  • 某草草

    某草草2017-05-15 17:14:19

    la capacité implique le cache LRU (Least Recenlty Used, le moins récemment utilisé), tel que :

    1

    2

    3

    4

    <code>var lru = $cacheFactory('lru', {capacity: 20});

     

    // $http请求

    $http.get('/api/users.json', {cache: lru}).then(function(data){});</code>

    Maintenant, les 20 dernières demandes seront mises en cache. La 21ème requête amènera LRU à supprimer l’ancienne requête du cache.

    Nous pouvons également définir un cache par défaut pour toutes les requêtes $http via la fonction .config() de l'application, c'est-à-dire la phase de configuration :

    1

    2

    3

    4

    5

    6

    <code>angular.module('myApp', [])

    .config(function($httpProvider, $cacheFactory) {

        $httpProvider.defaults.cache = $cacheFactory('lru', {

            capacity: 20

        });

    });</code>

    répondre
    0
  • Annulerrépondre