fix(app): improved data fetching scheduler

This commit is contained in:
2024-05-03 19:02:13 +02:00
parent c16616330c
commit d6b8d032d6
2 changed files with 16 additions and 18 deletions
+16 -5
View File
@@ -70,7 +70,9 @@ export default defineComponent({
currentLang: 'pl', currentLang: 'pl',
releaseURL: '', releaseURL: '',
isOnProductionHost: location.hostname == 'stacjownik-td2.web.app' isOnProductionHost: location.hostname == 'stacjownik-td2.web.app',
nextUpdateTime: 0
}), }),
created() { created() {
@@ -78,11 +80,11 @@ export default defineComponent({
}, },
async mounted() { async mounted() {
window.addEventListener('focus', () => { // window.addEventListener('focus', () => {
if (Date.now() - this.apiStore.lastFetchData.getTime() < 15000) return; // if (Date.now() - this.apiStore.lastFetchData.getTime() < 15000) return;
this.apiStore.fetchActiveData(); // this.apiStore.fetchActiveData();
}); // });
window.addEventListener('mousemove', (e: MouseEvent) => this.handlePopUpEvents(e)); window.addEventListener('mousemove', (e: MouseEvent) => this.handlePopUpEvents(e));
}, },
@@ -95,10 +97,19 @@ export default defineComponent({
this.checkAppVersion(); this.checkAppVersion();
this.apiStore.setupAPIData(); this.apiStore.setupAPIData();
window.requestAnimationFrame(this.update);
if (!this.isOnProductionHost) document.title = 'Stacjownik Dev'; if (!this.isOnProductionHost) document.title = 'Stacjownik Dev';
}, },
update(t: number) {
if (t >= this.nextUpdateTime) {
this.apiStore.fetchActiveData();
this.nextUpdateTime = t + 20000;
}
window.requestAnimationFrame(this.update);
},
checkAppVersion() { checkAppVersion() {
if (import.meta.env.DEV) { if (import.meta.env.DEV) {
this.store.isNewUpdate = true; this.store.isNewUpdate = true;
-13
View File
@@ -54,18 +54,6 @@ export const useApiStore = defineStore('apiStore', {
// Static data // Static data
this.fetchDonatorsData(); this.fetchDonatorsData();
this.fetchStationsGeneralInfo(); this.fetchStationsGeneralInfo();
// Active data schedueler
this.fetchActiveData();
// this.setupActiveDataFetcher();
},
async setupActiveDataFetcher() {
if (this.activeDataScheduler) return;
this.activeDataScheduler = window.setInterval(() => {
this.fetchActiveData();
}, 25000);
}, },
async fetchActiveData() { async fetchActiveData() {
@@ -75,7 +63,6 @@ export const useApiStore = defineStore('apiStore', {
console.log('Fetching active data at ' + new Date().toLocaleTimeString('pl-PL')); console.log('Fetching active data at ' + new Date().toLocaleTimeString('pl-PL'));
const response = await this.client!.get<API.ActiveData.Response>('api/getActiveData'); const response = await this.client!.get<API.ActiveData.Response>('api/getActiveData');
console.log(response);
this.activeData = response.data; this.activeData = response.data;
this.lastFetchData = new Date(); this.lastFetchData = new Date();