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