Make the new comments counts more locally included instead of being included on all the pages
This commit is contained in:
parent
e95bf16130
commit
53abdab5fc
6 changed files with 86 additions and 75 deletions
|
@ -150,34 +150,3 @@ function post_toast2(url, button1, button2) {
|
|||
document.getElementById(button1).classList.toggle("d-none");
|
||||
document.getElementById(button2).classList.toggle("d-none");
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans the expired entries (5 days). It runs every hour.
|
||||
*/
|
||||
function cleanCommentsCache() {
|
||||
const LAST_CACHE_CLEAN_ID = "last-cache-clean"
|
||||
const EXPIRE_INTERVAL_MILLIS = 5 * 24 * 60 * 60 * 1000
|
||||
const CACHE_CLEAN_INTERVAL = 60 * 60 * 1000 // 1 hour
|
||||
|
||||
function cleanCache() {
|
||||
const lastCacheClean = JSON.parse(localStorage.getItem(LAST_CACHE_CLEAN_ID)) || Date.now()
|
||||
const now = Date.now()
|
||||
|
||||
if (now - lastCacheClean > CACHE_CLEAN_INTERVAL) {
|
||||
const comments = JSON.parse(localStorage.getItem(COMMENT_COUNTS_ID)) || {}
|
||||
|
||||
for (let [key, value] of Object.entries(comments)) {
|
||||
if (now - value.t > EXPIRE_INTERVAL_MILLIS) {
|
||||
delete comments[key]
|
||||
}
|
||||
}
|
||||
window.localStorage.setItem(COMMENT_COUNTS_ID, JSON.stringify(comments))
|
||||
}
|
||||
window.localStorage.setItem(LAST_CACHE_CLEAN_ID, JSON.stringify(now))
|
||||
}
|
||||
|
||||
// So it does not slow the load of the main page with the clean up
|
||||
setTimeout(cleanCache, 500)
|
||||
}
|
||||
|
||||
cleanCommentsCache()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue