Performance: Server-Sent Events alternative
MEDIUM IMPACT
This affects how quickly and efficiently real-time data updates reach the browser, impacting interaction responsiveness and page load.
import { Server } from 'socket.io'; import http from 'http'; const server = http.createServer(); const io = new Server(server, { cors: { origin: '*' } }); io.on('connection', (socket) => { const interval = setInterval(() => { socket.emit('time', new Date().toISOString()); }, 1000); socket.on('disconnect', () => clearInterval(interval)); }); server.listen(3000);
const http = require('http'); http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive' }); setInterval(() => { res.write(`data: ${new Date().toISOString()}\n\n`); }, 1000); }).listen(3000);
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Server-Sent Events | Low per update | 1 reflow per update | Moderate paint | [!] OK |
| WebSocket | Low per update | 1 reflow per update | Moderate paint | [OK] Good |