diff --git a/client/homePage.ts b/client/homePage.ts index a3bf7feb88612103371e3c6904152af8e0bc5381..6c622a127011167cdae964b4d45d661c1ff46505 100644 --- a/client/homePage.ts +++ b/client/homePage.ts @@ -37,6 +37,8 @@ interface Project { let myIdeaCards: { [key: number]: IdeaCard } = {}; +const cache: {[key: string]: any[]} = {}; + class IdeaCard { private header: string; private department: string; @@ -323,7 +325,9 @@ export async function loadPage(listenersLoaded: boolean) { } const projectContainer = document.getElementById("project-container"); if (projectContainer) { - await getProjects(projectContainer, listenersLoaded, user.id); + const startGetProjects = performance.now(); + getProjects(projectContainer, listenersLoaded, user.id); + console.log(`getProjects duration: ${performance.now() - startGetProjects} ms`) } console.log("innan"); const departmentContainer = document.getElementById( @@ -490,7 +494,19 @@ export async function getProjects( listenersLoaded: boolean, userHsaId: string ) { - const data = await getImprovementWorksForUser(userHsaId); + let data: any[] = []; + + if(cache[userHsaId]) { + const startGetCachedProjects = performance.now(); + data = cache[userHsaId]; + console.log(`getCachedProjects duration: ${performance.now() - startGetCachedProjects} ms`); + } else { + const startGetImprovementWorksForUser = performance.now(); + data = await getImprovementWorksForUser(userHsaId); + cache[userHsaId] = data; + console.log(`getImprovementWorksForUser duration: ${performance.now() - startGetImprovementWorksForUser} ms`); + } + let id = 0; data.forEach(async (project) => { let title = project.name; @@ -511,7 +527,9 @@ export async function getProjects( dateStarted ); projectCards[i] = card; + const startGenerateHTML = performance.now(); let cardHTML = card.generateHTML(); + console.log(`GenerateHTML duration ${performance.now() - startGenerateHTML} ms`); let div = document.createElement("div"); div.className = "homePageProjectCardDiv"; // Set the class name(s) here div.innerHTML = cardHTML; diff --git a/client/profilePage.ts b/client/profilePage.ts index d4d55da9393ef4f1177979e490c4416621e143cd..6706058fa6daa9457bc93482a9c1761be300b138 100644 --- a/client/profilePage.ts +++ b/client/profilePage.ts @@ -259,7 +259,7 @@ async function createNewIdeaCard( } const projectContainer = document.getElementById("project-container"); if(projectContainer) { - await getProjects(projectContainer, listenersLoaded, user.id); + getProjects(projectContainer, listenersLoaded, user.id); } })