collab/mermaid/demos/dev/reload.jsblame
View source
6dd74de1// Connect to the server and reload the page if the server sends a reload message
6dd74de2const connectToEvents = () => {
6dd74de3 const events = new EventSource('/events');
6dd74de4 const loadTime = Date.now();
6dd74de5 events.onmessage = (event) => {
6dd74de6 const time = JSON.parse(event.data);
6dd74de7 if (time && time > loadTime) {
6dd74de8 location.reload();
6dd74de9 }
6dd74de10 };
6dd74de11 events.onerror = (error) => {
6dd74de12 console.error(error);
6dd74de13 events.close();
6dd74de14 // Try to reconnect after 1 second in case of errors
6dd74de15 setTimeout(connectToEvents, 1000);
6dd74de16 };
6dd74de17 events.onopen = () => {
6dd74de18 console.log('Connected to live reload server');
6dd74de19 };
6dd74de20};
6dd74de21
6dd74de22setTimeout(connectToEvents, 500);