perf: applied home cache technique to favorites and to settings
This commit is contained in:
@@ -14,6 +14,7 @@ export function getChartsData() {
|
||||
chartsData = data
|
||||
cached = true
|
||||
|
||||
socket.off('init_charts')
|
||||
resolve(data)
|
||||
})
|
||||
})
|
||||
|
||||
22
src/data/favorites.js
Normal file
22
src/data/favorites.js
Normal 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)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ export function getHomeData() {
|
||||
homeData = data
|
||||
cached = true
|
||||
|
||||
socket.off('init_home')
|
||||
resolve(data)
|
||||
})
|
||||
})
|
||||
|
||||
27
src/data/settings.js
Normal file
27
src/data/settings.js
Normal 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 })
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user