cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - angularjs $cacheFactory capacity 怎么理解


怎么理解图中的话,最好有demo

自己写了个demo超过了限制的capacity:3但是每次缓存cache.info()打印出来的size都一样。另外$cacheFactory(key,[option])中的key只能是一个字符串吗,如何一次定义多个缓存对象

过去多啦不再A梦过去多啦不再A梦2744 hari yang lalu530

membalas semua(2)saya akan balas

  • 大家讲道理

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

    kapasiti adalah bersamaan dengan menentukan kapasiti maksimum yang boleh digunakan untuk cache.
    Untuk contoh mudah, jika anda mempunyai 3 baldi (kapasiti=3) dan anda mengisi baldi pertama air (letakkan), maka ia masih mempunyai 3 baldi. Isikan satu baldi air lagi sehingga baldi air yang keempat terisi Memandangkan hanya ada 3 baldi, nampaknya baldi air ini tidak boleh diisi. Buang baldi air pertama dan gunakan baldi ini untuk memegang baldi air keempat (strategi cache: LRU)
    Anda boleh lihat pelaksanaan $cacheFatory, anda sepatutnya mempunyai pemahaman yang lebih mendalam

    balas
    0
  • 某草草

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

    kapasiti melibatkan cache LRU (Least Recenlty Used, least recent used), seperti:

    var lru = $cacheFactory('lru', {capacity: 20});
    
    // $http请求
    $http.get('/api/users.json', {cache: lru}).then(function(data){});

    Kini, 20 permintaan terkini akan dicache. Permintaan ke-21 akan menyebabkan LRU mengalih keluar permintaan lama daripada cache.

    Kami juga boleh menetapkan cache lalai untuk semua permintaan $http melalui fungsi .config() aplikasi, iaitu fasa konfigurasi:

    angular.module('myApp', [])
    .config(function($httpProvider, $cacheFactory) {
        $httpProvider.defaults.cache = $cacheFactory('lru', {
            capacity: 20
        });
    });

    balas
    0
  • Batalbalas