Work on cache handling

This commit is contained in:
Scott Idem
2025-04-29 12:31:21 -04:00
parent 6094d5a79d
commit be9c67e667
2 changed files with 66 additions and 24 deletions

View File

@@ -54,6 +54,7 @@ let ver_idb = '2025-04-18_1100'; // Not used
const ae_app_local_data_defaults: key_val = {
last_page_reload: null,
// last_idb_reload: null,
last_cache_refresh: null,
ver: ver, // ver, // '2025-04-18_1100',
ver_idb: ver_idb, // '2025-04-18_1100',
name: 'Aether - App Hub (SvelteKit 2.x Svelte 4.x)',

View File

@@ -75,6 +75,30 @@ if (log_lvl > 1) {
console.log(`ae_root +layout.svelte data:`, data);
}
// Get the current datetime
let early_check_current_datetime = new Date(); // Date.now()
// Check if the iframe parameter is set to true
// let early_check_iframe = data.url.searchParams.get('iframe');
// if (
// browser
// && early_check_iframe == 'true'
// && (
// !$ae_loc?.last_cache_refresh
// || (
// $ae_loc?.last_cache_refresh
// && (Date.now() - $ae_loc?.last_cache_refresh) > 1 * 60 * 1000
// )
// )
// ) {
// console.log(`TEST: Use iframe layout! last_cache_refresh:`, $ae_loc?.last_cache_refresh);
// // localStorage.clear();
// window.location.reload();
// }
let trigger_clear_access: null|boolean = $state(null);
// let account_id = localStorage.getItem('ae_account_id');
@@ -187,11 +211,11 @@ if (log_lvl > 1) {
// }
// localStorage caches - Check if the last refresh timestamp for $ae_loc.last_refresh is no more than 48 hours ago.
let default_refresh_time = 48 * 60 * 60 * 1000; // 48 hours or 2880 minutes? 48 * 60 *
let default_refresh_time = 4 * 60 * 60 * 1000; // 48 hours or 2880 minutes? 48 * 60 *
let trusted_refresh_time = 168 * 60 * 60 * 1000; // 1 week or 10080 minutes?
// IDB caches - Check if the last refresh timestamp for $ae_loc.last_cache_refresh is no more than 15 minutes ago.
let default_idb_refresh_time = 120 * 60 * 1000; // 15 minutes?
let default_idb_refresh_time = 2 * 60 * 60 * 1000; // 15 minutes?
let trusted_idb_refresh_time = 4 * 60 * 60 * 1000; // 4 hours or 120 minutes?
// There should almost always be an event_id set.
@@ -361,9 +385,9 @@ if (browser) {
// }
if (!$ae_loc?.last_cache_refresh) {
if (log_lvl) {
// if (log_lvl) {
console.log(`Last reload not found. Need to set!`);
}
// }
$ae_loc.last_cache_refresh = Date.now();
@@ -374,6 +398,10 @@ if (browser) {
indexedDB.deleteDatabase('ae_journals_db');
indexedDB.deleteDatabase('ae_notes_db');
indexedDB.deleteDatabase('ae_posts_db');
localStorage.clear();
window.location.reload();
} else if ($ae_loc?.last_cache_refresh && $ae_loc?.trusted_access && (Date.now() - $ae_loc?.last_cache_refresh) > trusted_refresh_time) {
if (log_lvl) {
console.log(`Last (trusted) reload too old: ${$ae_loc.last_cache_refresh}`);
@@ -628,6 +656,8 @@ $effect(() => {
localStorage.clear();
sessionStorage.clear();
confirm('Local and Session Storage cleared. The page should now refresh on its own.');
window.location.reload();
}}
ondblclick={() => {
@@ -642,7 +672,8 @@ $effect(() => {
localStorage.clear();
sessionStorage.clear();
alert('Local and Session Storage cleared. The page should now refresh on its own.');
confirm('Local and Session Storage cleared. The page should now refresh on its own.');
// window.location.reload({forceGet: true});
// window.location.reload(true);
window.location.reload();
@@ -673,31 +704,41 @@ $effect(() => {
<button
type="button"
onclick={() => {
console.log('Reloading page...');
// Clear the localStorage and sessionStorage, then reload the page.
indexedDB.deleteDatabase('ae_core_db');
indexedDB.deleteDatabase('ae_archives_db');
indexedDB.deleteDatabase('ae_events_db');
indexedDB.deleteDatabase('ae_journals_db');
indexedDB.deleteDatabase('ae_posts_db');
// indexedDB.deleteDatabase('ae_core_db');
// indexedDB.deleteDatabase('ae_archives_db');
// indexedDB.deleteDatabase('ae_events_db');
// indexedDB.deleteDatabase('ae_journals_db');
// indexedDB.deleteDatabase('ae_posts_db');
// confirm('Local and Session Storage cleared. The page should now refresh on its own.');
// Clear localStorage and sessionStorage
localStorage.clear();
// sessionStorage.clear();
window.location.reload();
}}
ondblclick={() => {
// Double click to clear all databases and reload the page.
indexedDB.deleteDatabase('ae_core_db');
indexedDB.deleteDatabase('ae_archives_db');
indexedDB.deleteDatabase('ae_events_db');
indexedDB.deleteDatabase('ae_journals_db');
indexedDB.deleteDatabase('ae_posts_db');
// // Double click to clear all databases and reload the page.
// indexedDB.deleteDatabase('ae_core_db');
// indexedDB.deleteDatabase('ae_archives_db');
// indexedDB.deleteDatabase('ae_events_db');
// indexedDB.deleteDatabase('ae_journals_db');
// indexedDB.deleteDatabase('ae_posts_db');
// Clear localStorage and sessionStorage
localStorage.clear();
sessionStorage.clear();
// // Clear localStorage and sessionStorage
// localStorage.clear();
// sessionStorage.clear();
alert('Local and Session Storage cleared. The page should now refresh on its own.');
// window.location.reload({forceGet: true});
// window.location.reload(true);
window.location.reload();
// confirm('DOUBLE CLICk: Local and Session Storage cleared. The page should now refresh on its own.');
// // window.location.reload({forceGet: true});
// // window.location.reload(true);
// window.location.reload();
}}
class="btn btn-sm m-1 variant-ghost-surface hover:variant-ghost-warning hover:variant-outline-warning text-error-600 hover:text-error-900 transition-all"
title="Reload and clear the page cache"
@@ -966,7 +1007,7 @@ max-w-max -->
<Element_access_type
show_passcode_input={$ae_loc.app_cfg.show_element__passcode_input}
trigger_clear_access={trigger_clear_access}
hidden={$ae_loc.iframe && !$ae_loc.trusted_access}
hidden={$ae_loc.iframe && !$ae_loc.trusted_access && !$ae_loc?.app_cfg?.show_element__menu}
/>
{/if}