Performance: Server-Sent Events alternative
MEDIUM IMPACT
This concept affects how fast the page can receive live updates and how much CPU and network resources are used during continuous data streaming.
from flask import Flask, render_template from flask_socketio import SocketIO, emit import eventlet import time eventlet.monkey_patch() app = Flask(__name__) socketio = SocketIO(app) def send_time(): while True: socketio.emit('time_update', {'time': time.ctime()}) socketio.sleep(1) socketio.start_background_task(send_time) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': socketio.run(app)
from flask import Flask, Response import time app = Flask(__name__) def event_stream(): while True: yield f'data: The time is {time.ctime()}\n\n' time.sleep(1) @app.route('/stream') def stream(): return Response(event_stream(), mimetype='text/event-stream')
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Server-Sent Events | Low (stream updates as text) | Low (updates usually don't change layout) | Low to Medium (depends on update frequency) | [!] OK |
| WebSockets | Low (event-driven updates) | Low | Low | [OK] Good |