ObjectLruCache
LruCache (Least Recent Used Cache) is een klasse die wordt gebruikt om de LRU-cache te onderhouden. Het kan een bepaald aantal waarden opslaan en de grootte van de container behouden. Als er nieuwe gegevens binnenkomen en de container de maximale grootte niet heeft bereikt, kunnen de nieuwe gegevens rechtstreeks aan de container worden toegevoegd. Als de container vol is, verwijdert de container de minst recent gebruikte gegevens
We kunnen het op de volgende manieren gebruiken:
1
2const util = require('util')
const c = new util.LruCache(10, 100) // create a LruCache instance with size 10 and timeout 100ms
Onder hen is set() de interface voor het instellen van sleutel-waardeparen:
1LruCache.set(String name, Value value);
De parameter name specificeert de sleutelwaarde die moet worden ingesteld, en de parameter value specificeert de waarde die moet worden ingesteld.
LruCache
De get
methode kan gegevens in de cache bijwerken met behulp van een callback-functie:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15var c = new util.LruCache(10, 1000); // create a LruCache instance with size 10 and timeout 1000ms
function get_data(name) {
// return data from backend
// ...
var data = {
'name': name,
'value': Math.random()
};
console.log('update data: ' + JSON.stringify(data)); // output infomation to console
return data;
}
console.log(c.get('a', get_data));
console.log(c.get('a', get_data));
Resultaten van de:
1
2
3update data: {"name":"a","value":0.4019124971556616}
{"name":"a","value":0.4019124971556616} // updater will be called to update cache data when cache is empty
{"name":"a","value":0.4019124971556616} // updater will not be called when cache is not empty
Wanneer ontwikkelaars specifiek LruCache gebruiken, wordt aangeraden de volgende best practices te volgen:
- U kunt LruCache gebruiken om de applicatieprestaties te optimaliseren door een specifiek tijdstip te gebruiken als het nieuwe punt tijdens de back-endgegevensverwerking en door de vervaltijd in te stellen.
- Analyseer zakelijke beslissingen onder overeenkomstige scenario's. Frequentere gegevensupdates moeten bijvoorbeeld worden geconfigureerd met een kortere vervaltijd, terwijl in de cache opgeslagen gegevens die minder vaak worden bijgewerkt geen te korte vervaltijd hoeven in te stellen.
- Overweeg in verschillende gebruiksscenario's verschillende gegevenstoegangsmodi en gebruik de juiste LruCache-klasse-instanties.
erfenis relatie
Constructeur
LruCache
LruCache-objectconstructor
1
2new LruCache(Integer size,
Integer timeout = 0);
Oproepparameters:
- size: geheel getal, maximale cachegrootte
- timeout: geheel getal, vervaltijd van element, eenheid is ms, als deze kleiner is dan of gelijk is aan 0, vervalt deze niet. De standaardwaarde is 0.
statische eigenschappen
defaultMaxListeners
Geheel getal, het standaard globale maximale aantal luisteraars
1static Integer LruCache.defaultMaxListeners;
eigenschappen van leden
size
Integer, vraag het aantal waarden in de container op
1readonly Integer LruCache.size;
timeout
Geheel getal, vraag op en stel de vervaltijd van elementen in de container in, de eenheid is ms, als deze kleiner is dan of gelijk is aan 0, verloopt deze niet.
1Integer LruCache.timeout;
onexpire
Time-outgebeurtenissen voor functies, query's en bindingen van gegevens, gelijk aan on("expire", func);
1Function LruCache.onexpire;
lid functie
clear
Containergegevens wissen
1LruCache.clear();
has
Controleer of de gegevens met de opgegeven sleutelwaarde in de container voorkomen
1Boolean LruCache.has(String name);
Oproepparameters:
- name: String, specificeert de sleutelwaarde die moet worden gecontroleerd
Resultaten retourneren:
- Boolean, geeft terug of de sleutelwaarde bestaat
get
Vraag de waarde van de opgegeven sleutelwaarde op
1Value LruCache.get(String name);
Oproepparameters:
- name: String, geef de sleutelwaarde op die moet worden opgevraagd
Resultaten retourneren:
- Value, retourneert de waarde die overeenkomt met de sleutelwaarde. Als deze niet bestaat, retourneert ongedefinieerd
Vraag de waarde van de opgegeven sleutelwaarde op. Als deze niet bestaat of verloopt, roept u de callback-functie aan om de gegevens bij te werken.
1
2Value LruCache.get(String name,
Function updater);
Oproepparameters:
- name: String, geef de sleutelwaarde op die moet worden opgevraagd
- updater: Functie, specificeer de updatefunctie
Resultaten retourneren:
- Value, retourneert de waarde die overeenkomt met de sleutelwaarde
set
Stel een sleutelwaardegegevens in. Als de sleutelwaarde niet bestaat, voegt u een nieuw gegevensfragment in.
1
2LruCache.set(String name,
Value value);
Oproepparameters:
- name: String, geef de sleutelwaarde op die moet worden ingesteld
- value: Waarde, specificeer de gegevens die moeten worden ingesteld
Stel een sleutelwaardegegevens in. Als de sleutelwaarde niet bestaat, voegt u nieuwe gegevens in.
1LruCache.set(Object map);
Oproepparameters:
- map: Object, specificeert de sleutel/waarde-datawoordenlijst die moet worden ingesteld
remove
Verwijder alle waarden van de opgegeven sleutel
1LruCache.remove(String name);
Oproepparameters:
- name: String, specificeert de sleutelwaarde die moet worden verwijderd
isEmpty
Controleer of de container leeg is
1Boolean LruCache.isEmpty();
Resultaten retourneren:
- Boolean, retourneert true als er geen waarde in de container zit
on
Bind een gebeurtenishandler aan het object
1
2Object LruCache.on(String ev,
Function func);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
- func: Functie, specificeer de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
Bind een gebeurtenishandler aan het object
1Object LruCache.on(Object map);
Oproepparameters:
- map: Object, specificeert de gebeurtenistoewijzingsrelatie, de objectattribuutnaam wordt gebruikt als de gebeurtenisnaam en de waarde van het attribuut wordt gebruikt als de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
addListener
Bind een gebeurtenishandler aan het object
1
2Object LruCache.addListener(String ev,
Function func);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
- func: Functie, specificeer de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
Bind een gebeurtenishandler aan het object
1Object LruCache.addListener(Object map);
Oproepparameters:
- map: Object, specificeert de gebeurtenistoewijzingsrelatie, de objectattribuutnaam wordt gebruikt als de gebeurtenisnaam en de waarde van het attribuut wordt gebruikt als de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
prependListener
Bind een gebeurtenishandler aan de oorsprong van het object
1
2Object LruCache.prependListener(String ev,
Function func);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
- func: Functie, specificeer de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
Bind een gebeurtenishandler aan de oorsprong van het object
1Object LruCache.prependListener(Object map);
Oproepparameters:
- map: Object, specificeert de gebeurtenistoewijzingsrelatie, de objectattribuutnaam wordt gebruikt als de gebeurtenisnaam en de waarde van het attribuut wordt gebruikt als de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
once
Bind een eenmalige gebeurtenishandler aan het object. De eenmalige gebeurtenishandler wordt slechts één keer geactiveerd.
1
2Object LruCache.once(String ev,
Function func);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
- func: Functie, specificeer de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
Bind een eenmalige gebeurtenishandler aan het object. De eenmalige gebeurtenishandler wordt slechts één keer geactiveerd.
1Object LruCache.once(Object map);
Oproepparameters:
- map: Object, specificeert de gebeurtenistoewijzingsrelatie, de objectattribuutnaam wordt gebruikt als de gebeurtenisnaam en de waarde van het attribuut wordt gebruikt als de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
prependOnceListener
Bind een gebeurtenishandler aan de oorsprong van het object
1
2Object LruCache.prependOnceListener(String ev,
Function func);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
- func: Functie, specificeer de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
Bind een gebeurtenishandler aan de oorsprong van het object
1Object LruCache.prependOnceListener(Object map);
Oproepparameters:
- map: Object, specificeert de gebeurtenistoewijzingsrelatie, de objectattribuutnaam wordt gebruikt als de gebeurtenisnaam en de waarde van het attribuut wordt gebruikt als de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
off
De toewijzing van een functie uit de objectverwerkingswachtrij ongedaan maken
1
2Object LruCache.off(String ev,
Function func);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
- func: Functie, specificeer de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
Annuleer alle functies in de wachtrij voor objectverwerking
1Object LruCache.off(String ev);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
De toewijzing van een functie uit de objectverwerkingswachtrij ongedaan maken
1Object LruCache.off(Object map);
Oproepparameters:
- map: Object, specificeert de gebeurtenistoewijzingsrelatie, de objectattribuutnaam wordt gebruikt als de gebeurtenisnaam en de waarde van het attribuut wordt gebruikt als de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
removeListener
De toewijzing van een functie uit de objectverwerkingswachtrij ongedaan maken
1
2Object LruCache.removeListener(String ev,
Function func);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
- func: Functie, specificeer de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
Annuleer alle functies in de wachtrij voor objectverwerking
1Object LruCache.removeListener(String ev);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
De toewijzing van een functie uit de objectverwerkingswachtrij ongedaan maken
1Object LruCache.removeListener(Object map);
Oproepparameters:
- map: Object, specificeert de gebeurtenistoewijzingsrelatie, de objectattribuutnaam wordt gebruikt als de gebeurtenisnaam en de waarde van het attribuut wordt gebruikt als de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
removeAllListeners
Annuleert alle luisteraars voor alle gebeurtenissen uit de verwerkingswachtrij van het object. Als er een gebeurtenis is opgegeven, worden alle luisteraars voor de opgegeven gebeurtenis verwijderd.
1Object LruCache.removeAllListeners(String ev);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
Annuleert alle luisteraars voor alle gebeurtenissen uit de verwerkingswachtrij van het object. Als er een gebeurtenis is opgegeven, worden alle luisteraars voor de opgegeven gebeurtenis verwijderd.
1Object LruCache.removeAllListeners(Array evs = []);
Oproepparameters:
- evs: Array, geef de naam van de gebeurtenis op
Resultaten retourneren:
- Object, retourneert het gebeurtenisobject zelf om kettingoproepen te vergemakkelijken
setMaxListeners
De standaardlimiet voor het aantal luisteraars, alleen voor compatibiliteit
1LruCache.setMaxListeners(Integer n);
Oproepparameters:
- n: geheel getal, geef het aantal gebeurtenissen op
getMaxListeners
Krijgt het standaardlimietaantal luisteraars, alleen voor compatibiliteit
1Integer LruCache.getMaxListeners();
Resultaten retourneren:
- Integer, retourneert de standaardlimiethoeveelheid
listeners
Voer een query uit op de luisteraararray voor de opgegeven gebeurtenis van het object
1Array LruCache.listeners(String ev);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
Resultaten retourneren:
- Array, retourneert de luisteraararray voor de opgegeven gebeurtenis
listenerCount
Vraag het aantal luisteraars op voor de opgegeven gebeurtenis van het object
1Integer LruCache.listenerCount(String ev);
Oproepparameters:
- ev: String, specificeert de naam van de gebeurtenis
Resultaten retourneren:
- Integer, retourneert het aantal luisteraars voor de opgegeven gebeurtenis
Vraag het aantal luisteraars op voor de opgegeven gebeurtenis van het object
1
2Integer LruCache.listenerCount(Value o,
String ev);
Oproepparameters:
- o: Waarde, specificeert het object van de query
- ev: String, specificeert de naam van de gebeurtenis
Resultaten retourneren:
- Integer, retourneert het aantal luisteraars voor de opgegeven gebeurtenis
eventNames
Naam van query-listenergebeurtenis
1Array LruCache.eventNames();
Resultaten retourneren:
- Array, retourneert een array met gebeurtenisnamen
emit
Activeer actief een gebeurtenis
1
2Boolean LruCache.emit(String ev,
...args);
Oproepparameters:
- ev: String, gebeurtenisnaam
- args: ..., gebeurtenisparameters worden doorgegeven aan de gebeurtenisverwerkingsfunctie
Resultaten retourneren:
- Boolean, retourneert de gebeurtenistriggerstatus, retourneert waar als er een responsgebeurtenis is, retourneert anders false
toString
Retourneert de tekenreeksweergave van het object. Over het algemeen wordt '[Native Object]' geretourneerd. Het object kan opnieuw worden geïmplementeerd op basis van zijn eigen kenmerken.
1String LruCache.toString();
Resultaten retourneren:
- String, retourneert de tekenreeksrepresentatie van het object
toJSON
Retourneert een weergave in JSON-indeling van het object, waarbij doorgaans een verzameling leesbare eigenschappen wordt geretourneerd die door het object zijn gedefinieerd.
1Value LruCache.toJSON(String key = "");
Oproepparameters:
- key: Tekenreeks, niet gebruikt
Resultaten retourneren:
- Value, retourneert een waarde die JSON-serialiseerbaar bevat