Oggetto oggetto incorporato

ObjectLruCache

LruCache (Least Recently Used Cache) è una classe utilizzata per mantenere la cache LRU. Può memorizzare un certo numero di valori e mantenere la dimensione del contenitore. Quando arrivano nuovi dati, se il contenitore non ha raggiunto il limite di dimensione, i nuovi dati possono essere aggiunti direttamente al contenitore. Se il contenitore è pieno, eliminerà i dati utilizzati meno di recente

Possiamo usarlo nei seguenti modi:

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

Tra questi, set() è l'interfaccia per l'impostazione delle coppie chiave-valore:

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

Il parametro name specifica il valore della chiave da impostare e il parametro value specifica il valore da impostare.

LruCacheIl getmetodo può aggiornare i dati memorizzati nella cache utilizzando una funzione di callback:

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));

Risultati di:

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

Quando si utilizza LruCache in modo specifico, si consiglia agli sviluppatori di seguire le seguenti best practice:

  • Puoi utilizzare LruCache per ottimizzare le prestazioni dell'applicazione utilizzando un punto temporale specifico come nuovo punto durante l'elaborazione dei dati back-end e impostando il tempo di scadenza.
  • Analizzare le decisioni aziendali in scenari corrispondenti. Ad esempio, gli aggiornamenti dei dati più frequenti devono essere configurati con una scadenza più breve, mentre per i dati memorizzati nella cache aggiornati meno frequentemente non è necessario impostare una scadenza troppo breve.
  • In diversi scenari di utilizzo, considera diverse modalità di accesso ai dati e utilizza le istanze della classe LruCache appropriate.

rapporto ereditario

Costruttore

LruCache

Costruttore di oggetti LruCache

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

Parametri di chiamata:

  • size: numero intero, dimensione massima della cache
  • timeout: numero intero, tempo di scadenza dell'elemento, l'unità è ms, se è inferiore o uguale a 0, non scadrà. Il valore predefinito è 0.

proprietà statiche

defaultMaxListeners

Intero, il numero massimo globale predefinito di ascoltatori

1
static Integer LruCache.defaultMaxListeners;

proprietà dei membri

size

Intero, interroga il numero di valori nel contenitore

1
readonly Integer LruCache.size;

timeout

Intero, interroga e imposta il tempo di scadenza degli elementi nel contenitore, l'unità è ms, se è inferiore o uguale a 0, non scadrà.

1
Integer LruCache.timeout;

onexpire

Funzione, interroga e associa eventi di timeout dei dati, equivalente a on("expire", func);

1
Function LruCache.onexpire;

funzione membro

clear

Cancella i dati del contenitore

1
LruCache.clear();

has

Controlla se i dati con il valore della chiave specificato esistono nel contenitore

1
Boolean LruCache.has(String name);

Parametri di chiamata:

  • name: String, specifica il valore della chiave da verificare

Risultati restituiti:

  • Boolean, restituisce se il valore della chiave esiste

get

Interrogare il valore del valore chiave specificato

1
Value LruCache.get(String name);

Parametri di chiamata:

  • name: String, specifica il valore della chiave da interrogare

Risultati restituiti:

  • Value, restituisce il valore corrispondente al valore della chiave, se non esiste, restituisce undefinito

Interroga il valore del valore della chiave specificato. Se non esiste o scade, chiama la funzione di callback per aggiornare i dati.

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

Parametri di chiamata:

  • name: String, specifica il valore della chiave da interrogare
  • updater: Funzione, specifica la funzione di aggiornamento

Risultati restituiti:

  • Value, restituisce il valore corrispondente al valore della chiave

set

Imposta i dati del valore chiave. Se il valore della chiave non esiste, inserisci un nuovo dato.

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

Parametri di chiamata:

  • name: String, specifica il valore della chiave da impostare
  • value: Valore, specificare i dati da impostare

Imposta i dati del valore chiave. Se il valore chiave non esiste, inserisci nuovi dati.

1
LruCache.set(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica il dizionario dati chiave-valore da impostare

remove

Elimina tutti i valori della chiave specificata

1
LruCache.remove(String name);

Parametri di chiamata:

  • name: String, specifica il valore della chiave da eliminare

isEmpty

Controlla se il contenitore è vuoto

1
Boolean LruCache.isEmpty();

Risultati restituiti:

  • Boolean, restituisce true se non è presente alcun valore nel contenitore

on

Associa un gestore eventi all'oggetto

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

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento
  • func: Funzione, specifica la funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Associa un gestore eventi all'oggetto

1
Object LruCache.on(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

addListener

Associa un gestore eventi all'oggetto

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

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento
  • func: Funzione, specifica la funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Associa un gestore eventi all'oggetto

1
Object LruCache.addListener(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

prependListener

Associa un gestore eventi all'origine dell'oggetto

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

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento
  • func: Funzione, specifica la funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Associa un gestore eventi all'origine dell'oggetto

1
Object LruCache.prependListener(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

once

Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.

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

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento
  • func: Funzione, specifica la funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.

1
Object LruCache.once(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

prependOnceListener

Associa un gestore eventi all'origine dell'oggetto

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

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento
  • func: Funzione, specifica la funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Associa un gestore eventi all'origine dell'oggetto

1
Object LruCache.prependOnceListener(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

off

Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti

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

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento
  • func: Funzione, specifica la funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Annulla tutte le funzioni nella coda di elaborazione degli oggetti

1
Object LruCache.off(String ev);

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti

1
Object LruCache.off(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

removeListener

Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti

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

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento
  • func: Funzione, specifica la funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Annulla tutte le funzioni nella coda di elaborazione degli oggetti

1
Object LruCache.removeListener(String ev);

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti

1
Object LruCache.removeListener(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

removeAllListeners

Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.

1
Object LruCache.removeAllListeners(String ev);

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.

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

Parametri di chiamata:

  • evs: Array, specifica il nome dell'evento

Risultati restituiti:

  • Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena

setMaxListeners

Il limite predefinito sul numero di ascoltatori, solo per compatibilità

1
LruCache.setMaxListeners(Integer n);

Parametri di chiamata:

  • n: Numero intero, specifica il numero di eventi

getMaxListeners

Ottiene il numero limite predefinito di ascoltatori, solo per compatibilità

1
Integer LruCache.getMaxListeners();

Risultati restituiti:

  • Integer, restituisce la quantità limite predefinita

listeners

Interroga l'array del listener per l'evento specificato dell'oggetto

1
Array LruCache.listeners(String ev);

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento

Risultati restituiti:

  • Array, restituisce l'array del listener per l'evento specificato

listenerCount

Interroga il numero di ascoltatori per l'evento specificato dell'oggetto

1
Integer LruCache.listenerCount(String ev);

Parametri di chiamata:

  • ev: String, specifica il nome dell'evento

Risultati restituiti:

  • Integer, restituisce il numero di ascoltatori per l'evento specificato

Interroga il numero di ascoltatori per l'evento specificato dell'oggetto

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

Parametri di chiamata:

  • o: Valore, specifica l'oggetto della query
  • ev: String, specifica il nome dell'evento

Risultati restituiti:

  • Integer, restituisce il numero di ascoltatori per l'evento specificato

eventNames

Interroga il nome dell'evento del listener

1
Array LruCache.eventNames();

Risultati restituiti:

  • Array, restituisce una matrice di nomi di eventi

emit

Attiva attivamente un evento

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

Parametri di chiamata:

  • ev: stringa, nome dell'evento
  • args: ..., i parametri dell'evento verranno passati alla funzione di elaborazione degli eventi

Risultati restituiti:

  • Boolean, restituisce lo stato di attivazione dell'evento, restituisce true se è presente un evento di risposta, altrimenti restituisce false

toString

Restituisce la rappresentazione in formato stringa dell'oggetto. Generalmente viene restituito "[Oggetto nativo]". L'oggetto può essere reimplementato in base alle proprie caratteristiche.

1
String LruCache.toString();

Risultati restituiti:

  • String, restituisce la rappresentazione di stringa dell'oggetto

toJSON

Restituisce una rappresentazione in formato JSON dell'oggetto, generalmente restituendo una raccolta di proprietà leggibili definite dall'oggetto.

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

Parametri di chiamata:

  • key: Stringa, non utilizzata

Risultati restituiti:

  • Value, restituisce un valore contenente JSON serializzabile