オブジェクト組み込みオブジェクト

オブジェクトLruキャッシュ

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: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 回だけトリガーされます。

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

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定します
  • func: 関数、イベント処理関数を指定します

返される結果:

  • Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。

ワンタイム イベント ハンドラーをオブジェクトにバインドします。ワンタイム ハンドラーは 1 回だけトリガーされます。

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 を含む値を返します