perf(hydration): resolve white page delay by removing blocking awaits from layouts
- Refactored Events root layout to fire load_ae_obj_id__event in the background. - Refactored Journals list page to fire load_ae_obj_li__journal in the background. - Combined with SWR module logic, this ensures near-instant UI rendering from Dexie cache while refreshes occur asynchronously.
This commit is contained in:
@@ -24,37 +24,15 @@ export async function load({ fetch, parent }) {
|
||||
};
|
||||
}
|
||||
|
||||
const journal_id = ae_acct.slct.journal_id; // From root +layout.ts
|
||||
if (!journal_id) {
|
||||
if (log_lvl) {
|
||||
console.log(
|
||||
`INFO: journals +layout.ts: The journal_id was not found in the parent_data.`
|
||||
);
|
||||
}
|
||||
// return false;
|
||||
}
|
||||
|
||||
if (browser) {
|
||||
if (journal_id) {
|
||||
// let ae_params = {};
|
||||
if (log_lvl) console.log(`ae_journals +page.ts (Non-Blocking)`);
|
||||
|
||||
const load_journal_obj_li = journals_func.load_ae_obj_id__journal({
|
||||
api_cfg: ae_acct.api,
|
||||
journal_id: journal_id,
|
||||
hidden: 'all', // 'not_hidden' to load only visible entries
|
||||
// params: ae_params,
|
||||
try_cache: true,
|
||||
log_lvl: log_lvl
|
||||
});
|
||||
ae_acct.slct.journal_obj_li = load_journal_obj_li;
|
||||
}
|
||||
|
||||
// console.log(`ae_acct = `, ae_acct);
|
||||
// WARNING: This does not currently work because the person_id has not been set yet.
|
||||
const person_id = ae_acct.loc.person_id;
|
||||
// console.log(`person_id = `, person_id);
|
||||
|
||||
const load_journal_obj_li = await journals_func.load_ae_obj_li__journal({
|
||||
// OPTIMIZATION: Fire the journal list load in the background.
|
||||
// Components using LiveQuery (db_journals) will display cached data
|
||||
// instantly while this refresh runs.
|
||||
journals_func.load_ae_obj_li__journal({
|
||||
api_cfg: ae_acct.api,
|
||||
for_obj_type: 'account',
|
||||
for_obj_id: account_id,
|
||||
@@ -62,13 +40,10 @@ export async function load({ fetch, parent }) {
|
||||
inc_entry_li: true,
|
||||
hidden: 'all', // 'not_hidden'
|
||||
enabled: 'enabled',
|
||||
// order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
|
||||
limit: 25,
|
||||
// params: ae_params,
|
||||
try_cache: true,
|
||||
log_lvl: log_lvl
|
||||
log_lvl: 0
|
||||
});
|
||||
ae_acct.slct.journal_obj_li = load_journal_obj_li;
|
||||
}
|
||||
|
||||
parent_data[account_id] = ae_acct;
|
||||
|
||||
Reference in New Issue
Block a user