Oggetto oggetto incorporato

ObjectLruCache

LruCache (Least Recent Used Cache) è una classe utilizzata per mantenere la cache LRU. Può memorizzare un certo numero di valori e mantiene 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 come segue:

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() è un'interfaccia per l'impostazione di 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ò utilizzare la funzione di callback per aggiornare i dati della cache:

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 specificamente LruCache, si consiglia agli sviluppatori di seguire le seguenti best practice:

  • È possibile utilizzare LruCache per ottimizzare le prestazioni dell'applicazione impostando un punto temporale specifico come punto fresco durante l'elaborazione dei dati di back-end e impostando l'ora di scadenza.
  • Analizza le decisioni aziendali negli scenari corrispondenti. Ad esempio, gli aggiornamenti dei dati più frequenti devono essere configurati con un tempo di scadenza più breve, mentre i dati memorizzati nella cache con una frequenza di aggiornamento inferiore non devono impostare un tempo di scadenza troppo breve.
  • In diversi scenari di utilizzo, considera diversi modelli 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: Integer, la dimensione massima della cache
  • timeout: Numero intero, tempo di scadenza dell'elemento, l'unità è ms, minore o uguale a 0 non scadrà, il valore predefinito è 0

proprietà statica

defaultMaxListeners

Integer, il numero massimo globale predefinito di listener

1
static Integer LruCache.defaultMaxListeners;

attributo membro

size

Integer, interroga il numero di valori nel contenitore

1
readonly Integer LruCache.size;

timeout

Integer, query e imposta il tempo di scadenza degli elementi nel contenitore, l'unità è ms, se è minore o uguale a 0, non scadrà

1
Integer LruCache.timeout;

onexpire

Funzione, query e evento di timeout dei dati di bind, equivalente a on("expire", func);

1
Function LruCache.onexpire;

funzione membro

clear

cancellare i dati del contenitore

1
LruCache.clear();

has

Verificare se i dati della chiave specificata esistono nel contenitore

1
Boolean LruCache.has(String name);

Parametri di chiamata:

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

risultato di ritorno:

  • Boolean, restituisce se la chiave esiste

get

Eseguire una query sul valore della chiave specificata

1
Value LruCache.get(String name);

Parametri di chiamata:

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

risultato di ritorno:

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

Interroga il valore del valore 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

risultato di ritorno:

  • Value, restituisce il valore corrispondente alla chiave

set

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

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

Parametri di chiamata:

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

Impostare i dati del valore della chiave, inserire nuovi dati se il valore della chiave non esiste

1
LruCache.set(Object map);

Parametri di chiamata:

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

remove

Elimina tutti i valori del valore chiave specificato

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

risultato di ritorno:

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

on

Associa un gestore di eventi a un oggetto

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

Parametri di chiamata:

  • ev: String, il nome dell'evento specificato
  • func: Funzione, specifica la funzione del gestore eventi

risultato di ritorno:

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

Associa un gestore di eventi a un oggetto

1
Object LruCache.on(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura dell'evento, 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

risultato di ritorno:

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

addListener

Associa un gestore di eventi a un oggetto

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

Parametri di chiamata:

  • ev: String, il nome dell'evento specificato
  • func: Funzione, specifica la funzione del gestore eventi

risultato di ritorno:

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

Associa un gestore di eventi a un oggetto

1
Object LruCache.addListener(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura dell'evento, 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

risultato di ritorno:

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

prependListener

Associa una funzione del gestore eventi all'inizio dell'oggetto

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

Parametri di chiamata:

  • ev: String, il nome dell'evento specificato
  • func: Funzione, specifica la funzione del gestore eventi

risultato di ritorno:

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

Associa una funzione del gestore eventi all'inizio dell'oggetto

1
Object LruCache.prependListener(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura dell'evento, 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

risultato di ritorno:

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

once

Associa un gestore di eventi monouso all'oggetto, il gestore monouso verrà attivato solo una volta

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

Parametri di chiamata:

  • ev: String, il nome dell'evento specificato
  • func: Funzione, specifica la funzione del gestore eventi

risultato di ritorno:

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

Associa un gestore di eventi monouso all'oggetto, il gestore monouso verrà attivato solo una volta

1
Object LruCache.once(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura dell'evento, 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

risultato di ritorno:

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

prependOnceListener

Associa una funzione del gestore eventi all'inizio dell'oggetto

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

Parametri di chiamata:

  • ev: String, il nome dell'evento specificato
  • func: Funzione, specifica la funzione del gestore eventi

risultato di ritorno:

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

Associa una funzione del gestore eventi all'inizio dell'oggetto

1
Object LruCache.prependOnceListener(Object map);

Parametri di chiamata:

  • map: Oggetto, specifica la relazione di mappatura dell'evento, 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

risultato di ritorno:

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

off

funzione unspecify dalla coda di elaborazione degli oggetti

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

Parametri di chiamata:

  • ev: String, il nome dell'evento specificato
  • func: Funzione, specifica la funzione del gestore eventi

risultato di ritorno:

  • Object, restituisce l'oggetto evento stesso, utile per 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, il nome dell'evento specificato

risultato di ritorno:

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

funzione unspecify dalla coda di elaborazione degli oggetti

1
Object LruCache.off(Object map);

Parametri di chiamata:

  • map: Object, specifica la relazione di mappatura dell'evento, 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

risultato di ritorno:

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

removeListener

funzione unspecify dalla coda di elaborazione degli oggetti

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

Parametri di chiamata:

  • ev: String, il nome dell'evento specificato
  • func: Funzione, specifica la funzione del gestore eventi

risultato di ritorno:

  • Object, restituisce l'oggetto evento stesso, utile per 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, il nome dell'evento specificato

risultato di ritorno:

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

funzione unspecify dalla coda di elaborazione degli oggetti

1
Object LruCache.removeListener(Object map);

Parametri di chiamata:

  • map: Object, specifica la relazione di mappatura dell'evento, 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

risultato di ritorno:

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

removeAllListeners

Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto o rimuove tutti i listener per l'evento specificato se è specificato un evento.

1
Object LruCache.removeAllListeners(String ev);

Parametri di chiamata:

  • ev: String, il nome dell'evento specificato

risultato di ritorno:

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

Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto o rimuove tutti i listener per l'evento specificato se è specificato un evento.

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

Parametri di chiamata:

  • evs: Array, il nome dell'evento specificato

risultato di ritorno:

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

setMaxListeners

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

1
LruCache.setMaxListeners(Integer n);

Parametri di chiamata:

  • n: Integer, specifica il numero di eventi

getMaxListeners

Ottiene il numero limitato predefinito di listener, solo per compatibilità

1
Integer LruCache.getMaxListeners();

risultato di ritorno:

  • Integer, restituisce il numero limite predefinito

listeners

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

1
Array LruCache.listeners(String ev);

Parametri di chiamata:

  • ev: String, il nome dell'evento specificato

risultato di ritorno:

  • Array, restituisce una matrice di 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, il nome dell'evento specificato

risultato di ritorno:

  • 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: Value, specifica l'oggetto della query
  • ev: String, il nome dell'evento specificato

risultato di ritorno:

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

eventNames

Interroga il nome dell'evento del listener

1
Array LruCache.eventNames();

risultato di ritorno:

  • Array, restituisce una matrice di nomi di eventi

emit

Attivare 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 del gestore dell'evento

risultato di ritorno:

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

toString

Restituisce la rappresentazione in stringa dell'oggetto, generalmente restituisce "[Native Object]", l'oggetto può essere reimplementato secondo le proprie caratteristiche

1
String LruCache.toString();

risultato di ritorno:

  • String, restituisce una rappresentazione in forma di stringa dell'oggetto

toJSON

Restituisce la rappresentazione in formato JSON dell'oggetto, in genere restituisce una raccolta di proprietà leggibili definite dall'oggetto

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

Parametri di chiamata:

  • key: stringa, non utilizzata

risultato di ritorno:

  • Value, che restituisce un valore serializzabile in JSON