未使用のキャッシュがクリアされる
This commit is contained in:
@@ -71,11 +71,11 @@ namespace DropDownConfig {
|
||||
const hash = await calculateHash(records, fields);
|
||||
const storageKey = `dropdown_dictionary::${props.dropDownApp.id}_${hash}`;
|
||||
|
||||
const lsDictionary = getFromLocalStorage(storageKey);
|
||||
// ローカルストレージから辞書を取得しようとし、存在しない場合は再構築
|
||||
dictionary =
|
||||
getFromLocalStorage(storageKey) ||
|
||||
buildDropdownDictionary(records, props.fieldList);
|
||||
if (!getFromLocalStorage(storageKey)) {
|
||||
lsDictionary || buildDropdownDictionary(records, props.fieldList);
|
||||
if (!lsDictionary) {
|
||||
saveToLocalStorage(storageKey, dictionary);
|
||||
}
|
||||
} catch (error) {
|
||||
@@ -157,9 +157,16 @@ namespace DropDownConfig {
|
||||
// ローカルストレージから辞書を取得
|
||||
const getFromLocalStorage = (key: string): DropdownDictionary | null => {
|
||||
const data = localStorage.getItem(key);
|
||||
clearUpDictionary(key);
|
||||
return data ? JSON.parse(data) : null;
|
||||
};
|
||||
|
||||
const clearUpDictionary = (key: string) => {
|
||||
Object.keys(localStorage)
|
||||
.filter((k) => k.startsWith("dropdown_dictionary::") && !k.endsWith(key))
|
||||
.forEach((k) => localStorage.removeItem(k));
|
||||
};
|
||||
|
||||
// 辞書をローカルストレージに保存
|
||||
const saveToLocalStorage = (key: string, data: DropdownDictionary): void => {
|
||||
localStorage.setItem(key, JSON.stringify(data));
|
||||
|
||||
Reference in New Issue
Block a user