Objet objet intégré

ObjetLruCache

LruCache (Least Récemment Utilisé Cache) est une classe utilisée pour maintenir le cache LRU. Il peut stocker un certain nombre de valeurs et conserver la taille du conteneur. Lorsque de nouvelles données arrivent, si le conteneur n'a pas atteint la taille limite, les nouvelles données peuvent être ajoutées directement au conteneur. Si le conteneur est plein, le conteneur expulsera les données les moins récemment utilisées

Nous pouvons l'utiliser des manières suivantes :

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

Parmi eux, set() est l'interface permettant de définir des paires clé-valeur :

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

Le paramètre name spécifie la valeur de clé à définir et le paramètre value spécifie la valeur à définir.

LruCacheLa getméthode peut mettre à jour les données mises en cache à l'aide d'une fonction de rappel :

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

Résultats du :

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

Lors de l'utilisation spécifique de LruCache, il est recommandé aux développeurs de suivre les bonnes pratiques suivantes :

  • Vous pouvez utiliser LruCache pour optimiser les performances des applications en utilisant un point temporel spécifique comme nouveau point lors du traitement des données back-end et en définissant le délai d'expiration.
  • Analysez les décisions commerciales dans les scénarios correspondants. Par exemple, les mises à jour de données plus fréquentes doivent être configurées avec un délai d'expiration plus court, tandis que les données mises en cache qui sont mises à jour moins fréquemment n'ont pas besoin de définir un délai d'expiration trop court.
  • Dans différents scénarios d'utilisation, envisagez différents modes d'accès aux données et utilisez les instances de classe LruCache appropriées.

relation d'héritage

Constructeur

LruCache

Constructeur d'objet LruCache

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

Paramètres d'appel :

  • size: Entier, taille maximale du cache
  • timeout: Entier, délai d'expiration de l'élément, l'unité est ms, s'il est inférieur ou égal à 0, il n'expirera pas. La valeur par défaut est 0.

propriétés statiques

defaultMaxListeners

Entier, le nombre maximum global d'auditeurs par défaut

1
static Integer LruCache.defaultMaxListeners;

propriétés des membres

size

Entier, interrogez le nombre de valeurs dans le conteneur

1
readonly Integer LruCache.size;

timeout

Entier, interrogez et définissez le délai d'expiration des éléments dans le conteneur, l'unité est ms, si elle est inférieure ou égale à 0, elle n'expirera pas.

1
Integer LruCache.timeout;

onexpire

Événements de délai d'attente de données de fonction, d'interrogation et de liaison, équivalents à on("expire", func);

1
Function LruCache.onexpire;

fonction membre

clear

Effacer les données du conteneur

1
LruCache.clear();

has

Vérifiez si les données avec la valeur de clé spécifiée existent dans le conteneur

1
Boolean LruCache.has(String name);

Paramètres d'appel :

  • name: String, spécifie la valeur clé à vérifier

Résultats de retour :

  • Boolean, renvoie si la valeur clé existe

get

Interroger la valeur de la valeur de clé spécifiée

1
Value LruCache.get(String name);

Paramètres d'appel :

  • name: String, spécifiez la valeur clé à interroger

Résultats de retour :

  • Value, renvoie la valeur correspondant à la valeur clé, si elle n'existe pas, renvoie undéfini

Interrogez la valeur de la valeur de clé spécifiée. Si elle n'existe pas ou expire, appelez la fonction de rappel pour mettre à jour les données.

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

Paramètres d'appel :

  • name: String, spécifiez la valeur clé à interroger
  • updater: Fonction, spécifiez la fonction de mise à jour

Résultats de retour :

  • Value, renvoie la valeur correspondant à la valeur clé

set

Définir une donnée de valeur clé. Si la valeur clé n'existe pas, insérez une nouvelle donnée.

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

Paramètres d'appel :

  • name: String, spécifiez la valeur clé à définir
  • value: Valeur, précisez les données à paramétrer

Définir une donnée de valeur clé. Si la valeur clé n'existe pas, insérez de nouvelles données.

1
LruCache.set(Object map);

Paramètres d'appel :

  • map: Objet, spécifie le dictionnaire de données clé-valeur à définir

remove

Supprimer toutes les valeurs de la clé spécifiée

1
LruCache.remove(String name);

Paramètres d'appel :

  • name: String, spécifie la valeur clé à supprimer

isEmpty

Vérifiez si le conteneur est vide

1
Boolean LruCache.isEmpty();

Résultats de retour :

  • Boolean, renvoie vrai s'il n'y a aucune valeur dans le conteneur

on

Lier un gestionnaire d'événements à l'objet

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

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement
  • func: Fonction, spécifiez la fonction de traitement des événements

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Lier un gestionnaire d'événements à l'objet

1
Object LruCache.on(Object map);

Paramètres d'appel :

  • map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

addListener

Lier un gestionnaire d'événements à l'objet

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

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement
  • func: Fonction, spécifiez la fonction de traitement des événements

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Lier un gestionnaire d'événements à l'objet

1
Object LruCache.addListener(Object map);

Paramètres d'appel :

  • map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

prependListener

Lier un gestionnaire d'événements à l'origine de l'objet

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

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement
  • func: Fonction, spécifiez la fonction de traitement des événements

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Lier un gestionnaire d'événements à l'origine de l'objet

1
Object LruCache.prependListener(Object map);

Paramètres d'appel :

  • map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

once

Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.

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

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement
  • func: Fonction, spécifiez la fonction de traitement des événements

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.

1
Object LruCache.once(Object map);

Paramètres d'appel :

  • map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

prependOnceListener

Lier un gestionnaire d'événements à l'origine de l'objet

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

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement
  • func: Fonction, spécifiez la fonction de traitement des événements

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Lier un gestionnaire d'événements à l'origine de l'objet

1
Object LruCache.prependOnceListener(Object map);

Paramètres d'appel :

  • map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

off

Désaffecter une fonction de la file d'attente de traitement des objets

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

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement
  • func: Fonction, spécifiez la fonction de traitement des événements

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Annuler toutes les fonctions dans la file d'attente de traitement des objets

1
Object LruCache.off(String ev);

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Désaffecter une fonction de la file d'attente de traitement des objets

1
Object LruCache.off(Object map);

Paramètres d'appel :

  • map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

removeListener

Désaffecter une fonction de la file d'attente de traitement des objets

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

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement
  • func: Fonction, spécifiez la fonction de traitement des événements

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Annuler toutes les fonctions dans la file d'attente de traitement des objets

1
Object LruCache.removeListener(String ev);

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Désaffecter une fonction de la file d'attente de traitement des objets

1
Object LruCache.removeListener(Object map);

Paramètres d'appel :

  • map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

removeAllListeners

Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.

1
Object LruCache.removeAllListeners(String ev);

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.

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

Paramètres d'appel :

  • evs: Tableau, précisez le nom de l'événement

Résultats de retour :

  • Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne

setMaxListeners

La limite par défaut du nombre d'auditeurs, pour des raisons de compatibilité uniquement

1
LruCache.setMaxListeners(Integer n);

Paramètres d'appel :

  • n: Entier, précisez le nombre d'événements

getMaxListeners

Obtient le nombre limite par défaut d'écouteurs, pour des raisons de compatibilité uniquement

1
Integer LruCache.getMaxListeners();

Résultats de retour :

  • Integer, renvoie la quantité limite par défaut

listeners

Interrogez le tableau d'écoute pour l'événement spécifié de l'objet

1
Array LruCache.listeners(String ev);

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement

Résultats de retour :

  • Array, renvoie le tableau d'écoute pour l'événement spécifié

listenerCount

Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet

1
Integer LruCache.listenerCount(String ev);

Paramètres d'appel :

  • ev: String, spécifie le nom de l'événement

Résultats de retour :

  • Integer, renvoie le nombre d'écouteurs pour l'événement spécifié

Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet

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

Paramètres d'appel :

  • o: Valeur, précise l'objet de la requête
  • ev: String, spécifie le nom de l'événement

Résultats de retour :

  • Integer, renvoie le nombre d'écouteurs pour l'événement spécifié

eventNames

Nom de l'événement d'écoute de requête

1
Array LruCache.eventNames();

Résultats de retour :

  • Array, renvoie un tableau de noms d'événements

emit

Déclencher activement un événement

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

Paramètres d'appel :

  • ev: Chaîne, nom de l'événement
  • args: ..., les paramètres de l'événement seront transmis à la fonction de traitement des événements

Résultats de retour :

  • Boolean, renvoie l'état du déclencheur d'événement, renvoie vrai s'il y a un événement de réponse, sinon renvoie faux

toString

Renvoie la représentation sous forme de chaîne de l'objet. Généralement, "[Native Object]" est renvoyé. L'objet peut être réimplémenté en fonction de ses propres caractéristiques.

1
String LruCache.toString();

Résultats de retour :

  • String, renvoie la représentation sous forme de chaîne de l'objet

toJSON

Renvoie une représentation au format JSON de l'objet, renvoyant généralement une collection de propriétés lisibles définies par l'objet.

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

Paramètres d'appel :

  • key: Chaîne, non utilisée

Résultats de retour :

  • Value, renvoie une valeur contenant du JSON sérialisable