add autoclean storage

This commit is contained in:
liangping 2022-10-28 14:10:03 +08:00
parent f03ee64cfa
commit f11c119f43
2 changed files with 17 additions and 6 deletions

View File

@ -185,8 +185,19 @@ export default class ChainFetch {
async getValidatorList(config = null) {
return this.get('/cosmos/staking/v1beta1/validators?pagination.limit=200&status=BOND_STATUS_BONDED', config).then(data => {
const vals = commonProcess(data.validators).map(i => new Validator().init(i))
// disable cache
// localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals))
try {
localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals))
} catch (err) {
// clear cache
for (let i = 0; i < localStorage.length; i += 1) {
const key = localStorage.key(i)
if (key.startsWith('validators')) {
localStorage.removeItem(key)
}
}
// set again
localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals))
}
return vals
})
}

View File

@ -279,10 +279,10 @@ export default {
},
},
created() {
// const cached = JSON.parse(getCachedValidators(this.$route.params.chain))
// if (cached) {
// this.validators = cached
// }
const cached = JSON.parse(getCachedValidators(this.$route.params.chain))
if (cached) {
this.validators = cached
}
this.$http.getValidatorList().then(res => {
this.validators = res
})