Встроенный объект объекта

ОбъектLruCache

LruCache (наименее недавно используемый кэш) — это класс, используемый для поддержания кэша LRU. Он может хранить определенное количество значений и поддерживать размер контейнера. При поступлении новых данных, если контейнер не достиг предельного размера, новые данные можно добавить непосредственно в контейнер. Если контейнер заполнен, он удалит данные, которые использовались реже всего.

Мы можем использовать его следующими способами:

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

Среди них set() — это интерфейс для установки пар ключ-значение:

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

Параметр name указывает устанавливаемое значение ключа, а параметр value указывает устанавливаемое значение.

LruCacheМетод getможет обновлять кэшированные данные с помощью функции обратного вызова:

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

Результаты:

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

При использовании LruCache разработчикам рекомендуется следовать следующим рекомендациям:

  • Вы можете использовать LruCache для оптимизации производительности приложения, используя определенный момент времени в качестве новой точки во время внутренней обработки данных и устанавливая время истечения срока действия.
  • Анализируйте бизнес-решения по соответствующим сценариям. Например, для более частых обновлений данных необходимо настроить более короткий срок действия, в то время как для кэшированных данных, которые обновляются реже, не требуется устанавливать слишком короткий срок действия.
  • В разных сценариях использования рассмотрите разные режимы доступа к данным и используйте соответствующие экземпляры класса LruCache.

отношения наследства

Конструктор

LruCache

Конструктор объекта LruCache

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

Параметры звонка:

  • size: целое число, максимальный размер кэша
  • timeout: целое число, время истечения срока действия элемента, единица измерения — мс, если оно меньше или равно 0, срок действия не истекает. Значение по умолчанию — 0.

статические свойства

defaultMaxListeners

Целое число, глобальное максимальное количество слушателей по умолчанию.

1
static Integer LruCache.defaultMaxListeners;

свойства члена

size

Целое число, запрос количества значений в контейнере

1
readonly Integer LruCache.size;

timeout

Целое число, запросите и установите время истечения срока действия элементов в контейнере, единица измерения — мс, если оно меньше или равно 0, срок его действия не истечет.

1
Integer LruCache.timeout;

onexpire

Функция, запрос и привязка событий таймаута данных, эквивалентных on("expire", func);

1
Function LruCache.onexpire;

функция-член

clear

Очистить данные контейнера

1
LruCache.clear();

has

Проверьте, существуют ли в контейнере данные с указанным значением ключа.

1
Boolean LruCache.has(String name);

Параметры звонка:

  • name: строка, указывает значение ключа, которое необходимо проверить.

Результаты возврата:

  • Boolean, возвращает, существует ли значение ключа

get

Запросить значение указанного значения ключа

1
Value LruCache.get(String name);

Параметры звонка:

  • name: строка, укажите значение ключа, которое будет запрошено.

Результаты возврата:

  • Value, возвращает значение, соответствующее значению ключа, если оно не существует, возвращает неопределенное значение

Запросите значение указанного значения ключа. Если оно не существует или срок его действия истек, вызовите функцию обратного вызова для обновления данных.

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

Параметры звонка:

  • name: строка, укажите значение ключа, которое будет запрошено.
  • updater: Функция, укажите функцию обновления.

Результаты возврата:

  • Value, возвращает значение, соответствующее значению ключа

set

Установите данные значения ключа. Если значение ключа не существует, вставьте новый фрагмент данных.

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

Параметры звонка:

  • name: Строка, укажите значение ключа, которое будет установлено.
  • value: Значение, укажите данные для установки.

Установите данные значения ключа. Если значение ключа не существует, вставьте новые данные.

1
LruCache.set(Object map);

Параметры звонка:

  • map: Объект, указывает словарь данных «ключ-значение», который будет установлен.

remove

Удалить все значения указанного ключа

1
LruCache.remove(String name);

Параметры звонка:

  • name: строка, указывает значение ключа, которое необходимо удалить.

isEmpty

Проверьте, пуст ли контейнер

1
Boolean LruCache.isEmpty();

Результаты возврата:

  • Boolean, возвращает true, если в контейнере нет значения

on

Привязать обработчик событий к объекту

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

Параметры звонка:

  • ev: строка, указывает название события.
  • func: Функция, укажите функцию обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Привязать обработчик событий к объекту

1
Object LruCache.on(Object map);

Параметры звонка:

  • map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

addListener

Привязать обработчик событий к объекту

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

Параметры звонка:

  • ev: строка, указывает название события.
  • func: Функция, укажите функцию обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Привязать обработчик событий к объекту

1
Object LruCache.addListener(Object map);

Параметры звонка:

  • map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

prependListener

Привяжите обработчик событий к источнику объекта

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

Параметры звонка:

  • ev: строка, указывает название события.
  • func: Функция, укажите функцию обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Привяжите обработчик событий к источнику объекта

1
Object LruCache.prependListener(Object map);

Параметры звонка:

  • map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

once

Привяжите к объекту одноразовый обработчик событий. Одноразовый обработчик будет срабатывать только один раз.

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

Параметры звонка:

  • ev: строка, указывает название события.
  • func: Функция, укажите функцию обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Привяжите к объекту одноразовый обработчик событий. Одноразовый обработчик будет срабатывать только один раз.

1
Object LruCache.once(Object map);

Параметры звонка:

  • map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

prependOnceListener

Привяжите обработчик событий к источнику объекта

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

Параметры звонка:

  • ev: строка, указывает название события.
  • func: Функция, укажите функцию обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Привяжите обработчик событий к источнику объекта

1
Object LruCache.prependOnceListener(Object map);

Параметры звонка:

  • map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

off

Отменить назначение функции из очереди обработки объекта

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

Параметры звонка:

  • ev: строка, указывает название события.
  • func: Функция, укажите функцию обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Отменить все функции в очереди обработки объекта

1
Object LruCache.off(String ev);

Параметры звонка:

  • ev: строка, указывает название события.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Отменить назначение функции из очереди обработки объекта

1
Object LruCache.off(Object map);

Параметры звонка:

  • map: Объект, определяет связь сопоставления событий, имя атрибута объекта используется в качестве имени события, а значение атрибута используется в качестве функции обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

removeListener

Отменить назначение функции из очереди обработки объекта

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

Параметры звонка:

  • ev: строка, указывает название события.
  • func: Функция, укажите функцию обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Отменить все функции в очереди обработки объекта

1
Object LruCache.removeListener(String ev);

Параметры звонка:

  • ev: строка, указывает название события.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Отменить назначение функции из очереди обработки объекта

1
Object LruCache.removeListener(Object map);

Параметры звонка:

  • map: Объект, определяет связь сопоставления событий, имя атрибута объекта используется в качестве имени события, а значение атрибута используется в качестве функции обработки событий.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

removeAllListeners

Отменяет все прослушиватели всех событий из очереди обработки объекта. Если событие указано, удаляются все прослушиватели указанного события.

1
Object LruCache.removeAllListeners(String ev);

Параметры звонка:

  • ev: строка, указывает название события.

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

Отменяет все прослушиватели всех событий из очереди обработки объекта. Если событие указано, удаляются все прослушиватели указанного события.

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

Параметры звонка:

  • evs: Массив, укажите название события

Результаты возврата:

  • Object, возвращает сам объект события для облегчения цепных вызовов

setMaxListeners

Ограничение количества прослушивателей по умолчанию, только для совместимости.

1
LruCache.setMaxListeners(Integer n);

Параметры звонка:

  • n: Целое число, укажите количество событий

getMaxListeners

Получает предельное количество прослушивателей по умолчанию, только для совместимости.

1
Integer LruCache.getMaxListeners();

Результаты возврата:

  • Integer, возвращает лимитируемое количество по умолчанию

listeners

Запросить массив прослушивателей для указанного события объекта

1
Array LruCache.listeners(String ev);

Параметры звонка:

  • ev: строка, указывает название события.

Результаты возврата:

  • Array, возвращает массив прослушивателей для указанного события

listenerCount

Запрос количества прослушивателей для указанного события объекта

1
Integer LruCache.listenerCount(String ev);

Параметры звонка:

  • ev: строка, указывает название события.

Результаты возврата:

  • Integer, возвращает количество прослушивателей указанного события

Запрос количества прослушивателей для указанного события объекта

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

Параметры звонка:

  • o: Значение, указывает объект запроса.
  • ev: строка, указывает название события.

Результаты возврата:

  • Integer, возвращает количество прослушивателей указанного события

eventNames

Имя события прослушивателя запроса

1
Array LruCache.eventNames();

Результаты возврата:

  • Array, возвращает массив имен событий

emit

Активно запускать событие

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

Параметры звонка:

  • ev: строка, имя события
  • args: ..., параметры события будут переданы в функцию обработки событий

Результаты возврата:

  • Boolean, возвращает статус триггера события, возвращает true, если есть ответное событие, в противном случае возвращает false

toString

Возвращает строковое представление объекта. Обычно возвращается «[Native Object]». Объект может быть повторно реализован в соответствии с его собственными характеристиками.

1
String LruCache.toString();

Результаты возврата:

  • String, возвращает строковое представление объекта

toJSON

Возвращает представление объекта в формате JSON, обычно возвращая коллекцию читаемых свойств, определенных объектом.

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

Параметры звонка:

  • key: Строка, не используется.

Результаты возврата:

  • Value, возвращает значение, содержащее сериализуемый JSON