up
This commit is contained in:
@@ -145,7 +145,6 @@ try {
|
||||
break;
|
||||
}
|
||||
|
||||
$sets[] = 'actualizado_at = NOW()';
|
||||
$sql = 'UPDATE turnero_turnos SET ' . implode(', ', $sets) . ' WHERE id = ?';
|
||||
$binds[] = $turnoId;
|
||||
|
||||
|
||||
@@ -425,23 +425,32 @@ function escHtml(str) {
|
||||
return d.innerHTML;
|
||||
}
|
||||
|
||||
// ── Carga inicial ─────────────────────────────────────────────
|
||||
async function cargarInicial() {
|
||||
// ── Carga/polling ─────────────────────────────────────────────
|
||||
let pollTimer = null;
|
||||
|
||||
async function cargarSnapshot() {
|
||||
const url = new URL(BASE_API + 'get_cola.php', location.href);
|
||||
url.searchParams.set('area', area);
|
||||
if (lugarId) url.searchParams.set('lugar_id', lugarId);
|
||||
|
||||
try {
|
||||
const res = await fetch(url.toString());
|
||||
const res = await fetch(url.toString(), { cache: 'no-store' });
|
||||
const json = await res.json();
|
||||
if (json.ok) renderSnapshot(json);
|
||||
} catch (_) { /* SSE tomará el relevo */ }
|
||||
} catch (_) {}
|
||||
}
|
||||
|
||||
// Arrancar polling cada 4 s (funciona aunque SSE falle por proxy)
|
||||
function iniciarPolling() {
|
||||
cargarSnapshot();
|
||||
pollTimer = setInterval(cargarSnapshot, 4000);
|
||||
}
|
||||
|
||||
// ── SSE ───────────────────────────────────────────────────────
|
||||
const chipEstado = document.getElementById('chip-estado');
|
||||
let esSource = null;
|
||||
let reconnectDelay = 2000;
|
||||
let sseViva = false;
|
||||
|
||||
function conectarSSE() {
|
||||
const sseUrl = new URL(BASE_API + 'sse_turno.php', location.href);
|
||||
@@ -452,6 +461,7 @@ function conectarSSE() {
|
||||
|
||||
esSource.addEventListener('open', () => {
|
||||
reconnectDelay = 2000;
|
||||
sseViva = true;
|
||||
chipEstado.className = 'estado-chip conectado';
|
||||
chipEstado.innerHTML = '<i class="fas fa-circle me-1" style="font-size:.5rem"></i>En vivo';
|
||||
});
|
||||
@@ -464,6 +474,7 @@ function conectarSSE() {
|
||||
});
|
||||
|
||||
esSource.addEventListener('error', () => {
|
||||
sseViva = false;
|
||||
chipEstado.className = 'estado-chip error';
|
||||
chipEstado.innerHTML = '<i class="fas fa-exclamation-circle me-1"></i>Reconectando…';
|
||||
esSource.close();
|
||||
@@ -473,7 +484,7 @@ function conectarSSE() {
|
||||
}
|
||||
|
||||
// ── Inicio ────────────────────────────────────────────────────
|
||||
cargarInicial();
|
||||
iniciarPolling();
|
||||
conectarSSE();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user