From d30ed659de70a2cd833a18c02005b5c9a3b84bd8 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Fri, 28 Oct 2022 13:49:18 +0300 Subject: Basic profile caching --- vnext/src/api/index.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'vnext/src/api') diff --git a/vnext/src/api/index.js b/vnext/src/api/index.js index f88695f2..aa0ddc6e 100644 --- a/vnext/src/api/index.js +++ b/vnext/src/api/index.js @@ -213,6 +213,8 @@ export function markReadTracker(msg, visitor) { return `${apiBaseUrl}/api/thread/mark_read/${msg.mid}-${msg.rid || 0}.gif?hash=${visitor.hash}`; } +let profileCache = {}; + /** * Fetch user profile * @@ -220,10 +222,17 @@ export function markReadTracker(msg, visitor) { */ export function fetchUserUri(profileUrl) { return new Promise((resolve, reject) => { - client.get(profileUrl, { - headers: { - 'Accept': 'application/ld+json' - } - }).then(response => resolve(response)).catch(reject); + if (profileCache[profileUrl]) { + resolve(profileCache[profileUrl]); + } else { + client.get(profileUrl, { + headers: { + 'Accept': 'application/ld+json' + } + }).then(response => { + profileCache[profileUrl] = response.data; + resolve(response.data); + }).catch(reject); + } }); } -- cgit v1.2.3