auto refresh

This commit is contained in:
N0\A
2025-10-30 08:23:46 +01:00
parent d97a13b623
commit b58dd7bc28
3 changed files with 65 additions and 0 deletions

63
refresh.js Normal file
View File

@@ -0,0 +1,63 @@
(function() {
// Configuration
const SSE_PORT = 8765;
const RECONNECT_DELAY = 5000; // 5 seconds
let eventSource = null;
let reconnectTimer = null;
function connect() {
// Clear any existing reconnect timer
if (reconnectTimer) {
clearTimeout(reconnectTimer);
reconnectTimer = null;
}
// Close existing connection
if (eventSource) {
eventSource.close();
}
// Connect to SSE server
const url = `${window.location.protocol}//${window.location.hostname}:${SSE_PORT}/events`;
eventSource = new EventSource(url);
eventSource.onmessage = function(event) {
try {
const data = JSON.parse(event.data);
if (data.type === 'reload') {
console.log('Repository updated, reloading page...');
// Hard reload to bypass cache
window.location.reload(true);
}
} catch (e) {
console.error('Error parsing SSE message:', e);
}
};
eventSource.onerror = function(error) {
console.log('SSE connection error, will reconnect...');
eventSource.close();
// Attempt to reconnect after delay
reconnectTimer = setTimeout(connect, RECONNECT_DELAY);
};
eventSource.onopen = function() {
console.log('Connected to auto-refresh service');
};
}
// Start connection when page loads
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', connect);
} else {
connect();
}
// Cleanup on page unload
window.addEventListener('beforeunload', function() {
if (eventSource) {
eventSource.close();
}
});
})();