Objeto incorporado

ObjetoLruCache

LruCache (caché menos utilizada recientemente) es una clase que se utiliza para mantener la caché LRU. Puede almacenar una cierta cantidad de valores y mantener el tamaño del contenedor. Cuando llegan nuevos datos, si el contenedor no ha alcanzado el límite de tamaño, los nuevos datos se pueden agregar directamente al contenedor. Si el contenedor está lleno, el contenedor desalojará los datos utilizados menos recientemente.

Podemos usarlo de las siguientes maneras:

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

Entre ellos, set() es la interfaz para configurar pares clave-valor:

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

El parámetro de nombre especifica el valor clave que se establecerá y el parámetro de valor especifica el valor que se establecerá.

LruCacheEl getmétodo puede actualizar los datos almacenados en caché mediante una función de devolución de llamada:

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

Resultados de:

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

Al utilizar LruCache específicamente, se recomienda a los desarrolladores seguir las siguientes mejores prácticas:

  • Puede utilizar LruCache para optimizar el rendimiento de la aplicación utilizando un punto de tiempo específico como punto nuevo durante el procesamiento de datos de back-end y estableciendo el tiempo de caducidad.
  • Analizar decisiones de negocio bajo los escenarios correspondientes. Por ejemplo, las actualizaciones de datos más frecuentes deben configurarse con un tiempo de vencimiento más corto, mientras que los datos almacenados en caché que se actualizan con menos frecuencia no necesitan establecer un tiempo de vencimiento demasiado corto.
  • En diferentes escenarios de uso, considere diferentes modos de acceso a datos y utilice instancias de clase LruCache apropiadas.

relación de herencia

Constructor

LruCache

Constructor de objetos LruCache

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

Parámetros de llamada:

  • size: Entero, tamaño máximo de caché
  • timeout: Entero, tiempo de caducidad del elemento, la unidad es ms, si es menor o igual a 0, no caducará, el valor predeterminado es 0.

propiedades estáticas

defaultMaxListeners

Entero, el número máximo global predeterminado de oyentes

1
static Integer LruCache.defaultMaxListeners;

propiedades de miembros

size

Entero, consulta el número de valores en el contenedor.

1
readonly Integer LruCache.size;

timeout

Entero, consulta y establece el tiempo de vencimiento de los elementos en el contenedor, la unidad es ms, si es menor o igual a 0, no caducará.

1
Integer LruCache.timeout;

onexpire

Función, consulta y vincula eventos de tiempo de espera de datos, equivalente a on("expire", func);

1
Function LruCache.onexpire;

función miembro

clear

Borrar datos del contenedor

1
LruCache.clear();

has

Compruebe si los datos con el valor clave especificado existen en el contenedor

1
Boolean LruCache.has(String name);

Parámetros de llamada:

  • name: Cadena, especifica el valor clave que se va a comprobar

Resultados de devolución:

  • Boolean, devuelve si el valor clave existe

get

Consultar el valor del valor clave especificado.

1
Value LruCache.get(String name);

Parámetros de llamada:

  • name: Cadena, especifique el valor clave que se consultará

Resultados de devolución:

  • Value, devuelve el valor correspondiente al valor clave, si no existe, devuelve indefinido

Consulta el valor del valor clave especificado. Si no existe o caduca, llama a la función de devolución de llamada para actualizar los datos.

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

Parámetros de llamada:

  • name: Cadena, especifique el valor clave que se consultará
  • updater: Función, especifique la función de actualización

Resultados de devolución:

  • Value, devuelve el valor correspondiente al valor clave

set

Establezca un dato de valor clave. Si el valor clave no existe, inserte un nuevo dato.

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

Parámetros de llamada:

  • name: Cadena, especifique el valor clave que se establecerá
  • value: Valor, especifique los datos que se establecerán

Establezca datos de valor clave. Si el valor clave no existe, inserte datos nuevos.

1
LruCache.set(Object map);

Parámetros de llamada:

  • map: Objeto, especifica el diccionario de datos clave-valor que se configurará

remove

Eliminar todos los valores de la clave especificada

1
LruCache.remove(String name);

Parámetros de llamada:

  • name: Cadena, especifica el valor clave que se eliminará

isEmpty

Comprobar si el contenedor está vacío

1
Boolean LruCache.isEmpty();

Resultados de devolución:

  • Boolean, devuelve verdadero si no hay ningún valor en el contenedor

on

Vincular un controlador de eventos al objeto

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

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.
  • func: Función, especifique la función de procesamiento de eventos

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Vincular un controlador de eventos al objeto

1
Object LruCache.on(Object map);

Parámetros de llamada:

  • map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

addListener

Vincular un controlador de eventos al objeto

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

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.
  • func: Función, especifique la función de procesamiento de eventos

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Vincular un controlador de eventos al objeto

1
Object LruCache.addListener(Object map);

Parámetros de llamada:

  • map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

prependListener

Vincular un controlador de eventos al origen del objeto

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

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.
  • func: Función, especifique la función de procesamiento de eventos

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Vincular un controlador de eventos al origen del objeto

1
Object LruCache.prependListener(Object map);

Parámetros de llamada:

  • map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

once

Vincula un controlador de eventos de una sola vez al objeto. El controlador de eventos de una sola vez solo se activará una vez.

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

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.
  • func: Función, especifique la función de procesamiento de eventos

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Vincula un controlador de eventos de una sola vez al objeto. El controlador de eventos de una sola vez solo se activará una vez.

1
Object LruCache.once(Object map);

Parámetros de llamada:

  • map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

prependOnceListener

Vincular un controlador de eventos al origen del objeto

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

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.
  • func: Función, especifique la función de procesamiento de eventos

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Vincular un controlador de eventos al origen del objeto

1
Object LruCache.prependOnceListener(Object map);

Parámetros de llamada:

  • map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

off

Desasignar una función de la cola de procesamiento de objetos

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

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.
  • func: Función, especifique la función de procesamiento de eventos

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Cancelar todas las funciones en la cola de procesamiento de objetos

1
Object LruCache.off(String ev);

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Desasignar una función de la cola de procesamiento de objetos

1
Object LruCache.off(Object map);

Parámetros de llamada:

  • map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usa como nombre del evento y el valor del atributo se usa como función de procesamiento de eventos.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

removeListener

Desasignar una función de la cola de procesamiento de objetos

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

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.
  • func: Función, especifique la función de procesamiento de eventos

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Cancelar todas las funciones en la cola de procesamiento de objetos

1
Object LruCache.removeListener(String ev);

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Desasignar una función de la cola de procesamiento de objetos

1
Object LruCache.removeListener(Object map);

Parámetros de llamada:

  • map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usa como nombre del evento y el valor del atributo se usa como función de procesamiento de eventos.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

removeAllListeners

Cancela todos los oyentes de todos los eventos de la cola de procesamiento del objeto. Si se especifica un evento, elimina todos los oyentes del evento especificado.

1
Object LruCache.removeAllListeners(String ev);

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

Cancela todos los oyentes de todos los eventos de la cola de procesamiento del objeto. Si se especifica un evento, elimina todos los oyentes del evento especificado.

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

Parámetros de llamada:

  • evs: Matriz, especifique el nombre del evento

Resultados de devolución:

  • Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena

setMaxListeners

El límite predeterminado en la cantidad de oyentes, solo por compatibilidad

1
LruCache.setMaxListeners(Integer n);

Parámetros de llamada:

  • n: Entero, especifica el número de eventos

getMaxListeners

Obtiene el número límite predeterminado de oyentes, solo por compatibilidad

1
Integer LruCache.getMaxListeners();

Resultados de devolución:

  • Integer, devuelve la cantidad límite predeterminada

listeners

Consultar la matriz de escucha para el evento especificado del objeto.

1
Array LruCache.listeners(String ev);

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.

Resultados de devolución:

  • Array, devuelve la matriz de escucha para el evento especificado

listenerCount

Consultar el número de oyentes para el evento especificado del objeto.

1
Integer LruCache.listenerCount(String ev);

Parámetros de llamada:

  • ev: Cadena, especifica el nombre del evento.

Resultados de devolución:

  • Integer, devuelve el número de oyentes para el evento especificado

Consultar el número de oyentes para el evento especificado del objeto.

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

Parámetros de llamada:

  • o: Valor, especifica el objeto de la consulta.
  • ev: Cadena, especifica el nombre del evento.

Resultados de devolución:

  • Integer, devuelve el número de oyentes para el evento especificado

eventNames

Nombre del evento del oyente de consultas

1
Array LruCache.eventNames();

Resultados de devolución:

  • Array, devuelve una serie de nombres de eventos

emit

Activar activamente un evento

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

Parámetros de llamada:

  • ev: Cadena, nombre del evento
  • args: ..., los parámetros del evento se pasarán a la función de procesamiento de eventos

Resultados de devolución:

  • Boolean, devuelve el estado del activador del evento, devuelve verdadero si hay un evento de respuesta; de lo contrario, devuelve falso

toString

Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.

1
String LruCache.toString();

Resultados de devolución:

  • String, devuelve la representación de cadena del objeto

toJSON

Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.

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

Parámetros de llamada:

  • key: Cadena, no utilizada

Resultados de devolución:

  • Value, devuelve un valor que contiene JSON serializable