Objekt integriertes Objekt

ObjectLruCache

LruCache (Least Recent Used Cache) ist eine Klasse, die zur Verwaltung des LRU-Cache verwendet wird. Es kann eine bestimmte Anzahl von Werten speichern und die Größe des Containers beibehalten. Wenn neue Daten eingehen und der Container die Größenbeschränkung nicht erreicht hat, können die neuen Daten direkt zum Container hinzugefügt werden. Wenn der Container voll ist, entfernt er die zuletzt verwendeten Daten

Wir können es auf folgende Weise verwenden:

1 2
const util = require('util') const c = new util.LruCache(10, 100) // create a LruCache instance with size 10 and timeout 100ms

Unter diesen ist set() die Schnittstelle zum Festlegen von Schlüssel-Wert-Paaren:

1
LruCache.set(String name, Value value);

Der Namensparameter gibt den festzulegenden Schlüsselwert an, und der Wertparameter gibt den festzulegenden Wert an.

LruCacheDie getMethode kann zwischengespeicherte Daten mithilfe einer Rückruffunktion aktualisieren:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
var 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));

Ergebnisse der:

1 2 3
update 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

Bei der spezifischen Verwendung von LruCache wird Entwicklern empfohlen, die folgenden Best Practices zu befolgen:

  • Sie können LruCache verwenden, um die Anwendungsleistung zu optimieren, indem Sie einen bestimmten Zeitpunkt als neuen Zeitpunkt während der Back-End-Datenverarbeitung verwenden und die Ablaufzeit festlegen.
  • Analysieren Sie Geschäftsentscheidungen unter entsprechenden Szenarien. Beispielsweise müssen häufigere Datenaktualisierungen mit einer kürzeren Ablaufzeit konfiguriert werden, während zwischengespeicherte Daten, die seltener aktualisiert werden, nicht auf eine zu kurze Ablaufzeit eingestellt werden müssen.
  • Berücksichtigen Sie in verschiedenen Nutzungsszenarien unterschiedliche Datenzugriffsmodi und verwenden Sie geeignete LruCache-Klasseninstanzen.

Erbschaftsverhältnis

Konstrukteur

LruCache

LruCache-Objektkonstruktor

1 2
new LruCache(Integer size, Integer timeout = 0);

Aufrufparameter:

  • size: Ganzzahl, maximale Cachegröße
  • timeout: Ganzzahl, Elementablaufzeit, Einheit ist ms. Wenn sie kleiner oder gleich 0 ist, läuft sie nicht ab. Der Standardwert ist 0.

statische Eigenschaften

defaultMaxListeners

Ganzzahl, die standardmäßige globale maximale Anzahl von Listenern

1
static Integer LruCache.defaultMaxListeners;

Mitgliedereigenschaften

size

Ganzzahl, fragen Sie die Anzahl der Werte im Container ab

1
readonly Integer LruCache.size;

timeout

Ganzzahl, fragen Sie die Ablaufzeit der Elemente im Container ab und legen Sie sie fest. Die Einheit ist ms. Wenn sie kleiner oder gleich 0 ist, läuft sie nicht ab.

1
Integer LruCache.timeout;

onexpire

Funktion, Abfrage und Bindung von Daten-Timeout-Ereignissen, äquivalent zu on("expire", func);

1
Function LruCache.onexpire;

Mitgliedsfunktion

clear

Containerdaten löschen

1
LruCache.clear();

has

Überprüfen Sie, ob die Daten mit dem angegebenen Schlüsselwert im Container vorhanden sind

1
Boolean LruCache.has(String name);

Aufrufparameter:

  • name: String, gibt den zu prüfenden Schlüsselwert an

Rückgabeergebnisse:

  • Boolean, gibt zurück, ob der Schlüsselwert existiert

get

Fragen Sie den Wert des angegebenen Schlüsselwerts ab

1
Value LruCache.get(String name);

Aufrufparameter:

  • name: String, geben Sie den Schlüsselwert an, der abgefragt werden soll

Rückgabeergebnisse:

  • ValueGibt den Wert zurück, der dem Schlüsselwert entspricht. Wenn er nicht existiert, wird undefiniert zurückgegeben

Fragen Sie den Wert des angegebenen Schlüsselwerts ab. Wenn er nicht vorhanden ist oder abläuft, rufen Sie die Rückruffunktion auf, um die Daten zu aktualisieren.

1 2
Value LruCache.get(String name, Function updater);

Aufrufparameter:

  • name: String, geben Sie den Schlüsselwert an, der abgefragt werden soll
  • updater: Funktion, geben Sie die Aktualisierungsfunktion an

Rückgabeergebnisse:

  • Value, gibt den Wert zurück, der dem Schlüsselwert entspricht

set

Legen Sie Schlüsselwertdaten fest. Wenn der Schlüsselwert nicht vorhanden ist, fügen Sie ein neues Datenelement ein.

1 2
LruCache.set(String name, Value value);

Aufrufparameter:

  • name: String, geben Sie den festzulegenden Schlüsselwert an
  • value: Wert, geben Sie die festzulegenden Daten an

Legen Sie Schlüsselwertdaten fest. Wenn der Schlüsselwert nicht vorhanden ist, fügen Sie neue Daten ein.

1
LruCache.set(Object map);

Aufrufparameter:

  • map: Objekt, gibt das festzulegende Schlüsselwert-Datenwörterbuch an

remove

Löschen Sie alle Werte des angegebenen Schlüssels

1
LruCache.remove(String name);

Aufrufparameter:

  • name: String, gibt den zu löschenden Schlüsselwert an

isEmpty

Prüfen Sie, ob der Behälter leer ist

1
Boolean LruCache.isEmpty();

Rückgabeergebnisse:

  • Boolean, gibt true zurück, wenn im Container kein Wert vorhanden ist

on

Binden Sie einen Event-Handler an das Objekt

1 2
Object LruCache.on(String ev, Function func);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an
  • func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Binden Sie einen Event-Handler an das Objekt

1
Object LruCache.on(Object map);

Aufrufparameter:

  • map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

addListener

Binden Sie einen Event-Handler an das Objekt

1 2
Object LruCache.addListener(String ev, Function func);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an
  • func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Binden Sie einen Event-Handler an das Objekt

1
Object LruCache.addListener(Object map);

Aufrufparameter:

  • map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

prependListener

Binden Sie einen Ereignishandler an den Ursprung des Objekts

1 2
Object LruCache.prependListener(String ev, Function func);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an
  • func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Binden Sie einen Ereignishandler an den Ursprung des Objekts

1
Object LruCache.prependListener(Object map);

Aufrufparameter:

  • map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

once

Binden Sie einen einmaligen Ereignishandler an das Objekt. Der einmalige Handler wird nur einmal ausgelöst.

1 2
Object LruCache.once(String ev, Function func);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an
  • func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Binden Sie einen einmaligen Ereignishandler an das Objekt. Der einmalige Handler wird nur einmal ausgelöst.

1
Object LruCache.once(Object map);

Aufrufparameter:

  • map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

prependOnceListener

Binden Sie einen Ereignishandler an den Ursprung des Objekts

1 2
Object LruCache.prependOnceListener(String ev, Function func);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an
  • func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Binden Sie einen Ereignishandler an den Ursprung des Objekts

1
Object LruCache.prependOnceListener(Object map);

Aufrufparameter:

  • map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

off

Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf

1 2
Object LruCache.off(String ev, Function func);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an
  • func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Brechen Sie alle Funktionen in der Objektverarbeitungswarteschlange ab

1
Object LruCache.off(String ev);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf

1
Object LruCache.off(Object map);

Aufrufparameter:

  • map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

removeListener

Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf

1 2
Object LruCache.removeListener(String ev, Function func);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an
  • func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Brechen Sie alle Funktionen in der Objektverarbeitungswarteschlange ab

1
Object LruCache.removeListener(String ev);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf

1
Object LruCache.removeListener(Object map);

Aufrufparameter:

  • map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

removeAllListeners

Löscht alle Listener für alle Ereignisse aus der Verarbeitungswarteschlange des Objekts. Wenn ein Ereignis angegeben ist, werden alle Listener für das angegebene Ereignis entfernt.

1
Object LruCache.removeAllListeners(String ev);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

Löscht alle Listener für alle Ereignisse aus der Verarbeitungswarteschlange des Objekts. Wenn ein Ereignis angegeben ist, werden alle Listener für das angegebene Ereignis entfernt.

1
Object LruCache.removeAllListeners(Array evs = []);

Aufrufparameter:

  • evs: Array, geben Sie den Namen des Ereignisses an

Rückgabeergebnisse:

  • Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern

setMaxListeners

Die Standardbeschränkung für die Anzahl der Listener dient nur der Kompatibilität

1
LruCache.setMaxListeners(Integer n);

Aufrufparameter:

  • n: Ganzzahl, geben Sie die Anzahl der Ereignisse an

getMaxListeners

Ruft nur aus Kompatibilitätsgründen die standardmäßige maximale Anzahl von Listenern ab

1
Integer LruCache.getMaxListeners();

Rückgabeergebnisse:

  • Integer, gibt die Standardgrenzmenge zurück

listeners

Fragen Sie das Listener-Array nach dem angegebenen Ereignis des Objekts ab

1
Array LruCache.listeners(String ev);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an

Rückgabeergebnisse:

  • Array, gibt das Listener-Array für das angegebene Ereignis zurück

listenerCount

Fragen Sie die Anzahl der Listener für das angegebene Ereignis des Objekts ab

1
Integer LruCache.listenerCount(String ev);

Aufrufparameter:

  • ev: String, gibt den Namen des Ereignisses an

Rückgabeergebnisse:

  • Integer, gibt die Anzahl der Listener für das angegebene Ereignis zurück

Fragen Sie die Anzahl der Listener für das angegebene Ereignis des Objekts ab

1 2
Integer LruCache.listenerCount(Value o, String ev);

Aufrufparameter:

  • o: Wert, gibt das Objekt der Abfrage an
  • ev: String, gibt den Namen des Ereignisses an

Rückgabeergebnisse:

  • Integer, gibt die Anzahl der Listener für das angegebene Ereignis zurück

eventNames

Name des Abfrage-Listener-Ereignisses

1
Array LruCache.eventNames();

Rückgabeergebnisse:

  • Array, gibt ein Array von Ereignisnamen zurück

emit

Ein Ereignis aktiv auslösen

1 2
Boolean LruCache.emit(String ev, ...args);

Aufrufparameter:

  • ev: String, Ereignisname
  • args: ..., Ereignisparameter werden an die Ereignisverarbeitungsfunktion übergeben

Rückgabeergebnisse:

  • Boolean, gibt den Ereignisauslöserstatus zurück, gibt „true“ zurück, wenn ein Antwortereignis vorliegt, andernfalls wird „false“ zurückgegeben

toString

Gibt die Zeichenfolgendarstellung des Objekts zurück. Im Allgemeinen wird „[Native Object]“ zurückgegeben. Das Objekt kann gemäß seinen eigenen Eigenschaften neu implementiert werden.

1
String LruCache.toString();

Rückgabeergebnisse:

  • String, gibt die Zeichenfolgendarstellung des Objekts zurück

toJSON

Gibt eine Darstellung des Objekts im JSON-Format zurück und gibt im Allgemeinen eine Sammlung lesbarer Eigenschaften zurück, die vom Objekt definiert werden.

1
Value LruCache.toJSON(String key = "");

Aufrufparameter:

  • key: Zeichenfolge, nicht verwendet

Rückgabeergebnisse:

  • Value, gibt einen Wert zurück, der JSON serialisierbar enthält