perf: applied home cache technique to favorites and to settings

This commit is contained in:
Roberto Tonino
2020-09-21 21:54:00 +02:00
parent 53dd45b740
commit 55646c7179
13 changed files with 127 additions and 226 deletions

View File

@@ -14,6 +14,7 @@ export function getChartsData() {
chartsData = data
cached = true
socket.off('init_charts')
resolve(data)
})
})

22
src/data/favorites.js Normal file
View File

@@ -0,0 +1,22 @@
import { socket } from '@/utils/socket'
let favoritesData = {}
let cached = false
export function getFavoritesData() {
if (cached) {
return favoritesData
} else {
socket.emit('get_favorites_data')
return new Promise((resolve, reject) => {
socket.on('init_favorites', data => {
favoritesData = data
cached = true
socket.off('init_favorites')
resolve(data)
})
})
}
}

View File

@@ -14,6 +14,7 @@ export function getHomeData() {
homeData = data
cached = true
socket.off('init_home')
resolve(data)
})
})

27
src/data/settings.js Normal file
View File

@@ -0,0 +1,27 @@
import { socket } from '@/utils/socket'
let settingsData = {}
let defaultSettingsData = {}
let spotifyCredentials = {}
let cached = false
export function getSettingsData() {
if (cached) {
return { settingsData, defaultSettingsData, spotifyCredentials }
} else {
socket.emit('get_settings_data')
return new Promise((resolve, reject) => {
socket.on('init_settings', (settings, credentials, defaults) => {
settingsData = settings
defaultSettingsData = defaults
spotifyCredentials = credentials
// cached = true
socket.off('init_settings')
resolve({ settingsData, defaultSettingsData, spotifyCredentials })
})
})
}
}