Авто Обновление данных
сделал автоматическое обновление данных по таскам у других клиентов.
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
// Конфигурация приложения
|
||||
window.APP_CONFIG = {
|
||||
API_BASE: 'http://192.168.1.6'
|
||||
API_BASE: 'http://192.168.1.6',
|
||||
|
||||
// Интервал автообновления данных (в секундах)
|
||||
IDLE_REFRESH_SECONDS: 1
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, watch, onMounted } from 'vue'
|
||||
import { ref, watch, onMounted, onUnmounted } from 'vue'
|
||||
import Sidebar from '../components/Sidebar.vue'
|
||||
import Header from '../components/Header.vue'
|
||||
import Board from '../components/Board.vue'
|
||||
@@ -174,13 +174,37 @@ const handleArchiveTask = async (cardId) => {
|
||||
closePanel()
|
||||
}
|
||||
|
||||
// ==================== АВТООБНОВЛЕНИЕ (POLLING) ====================
|
||||
const REFRESH_INTERVAL = (window.APP_CONFIG?.IDLE_REFRESH_SECONDS ?? 30) * 1000
|
||||
let pollTimer = null
|
||||
|
||||
const startPolling = () => {
|
||||
if (pollTimer) clearInterval(pollTimer)
|
||||
pollTimer = setInterval(async () => {
|
||||
console.log('[AutoRefresh] Обновление данных...')
|
||||
await fetchCards()
|
||||
}, REFRESH_INTERVAL)
|
||||
}
|
||||
|
||||
const stopPolling = () => {
|
||||
if (pollTimer) {
|
||||
clearInterval(pollTimer)
|
||||
pollTimer = null
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== ИНИЦИАЛИЗАЦИЯ ====================
|
||||
onMounted(async () => {
|
||||
await store.init()
|
||||
await fetchCards()
|
||||
startPolling()
|
||||
|
||||
if (window.lucide) window.lucide.createIcons()
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
stopPolling()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
Reference in New Issue
Block a user