Performance: Why sessions matter
Sessions affect server response time and page load speed by managing user state and data storage efficiently.
Jump into concepts and practice - no test required
def view(request): user_data = request.session.get('user_data') if not user_data: user_data = fetch_user_data() request.session['user_data'] = user_data return render(request, 'page.html', {'user_data': user_data})
def view(request): user_data = request.GET.get('user_data') # Storing user data in URL or hidden fields # No session used return render(request, 'page.html', {'user_data': user_data})
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Storing user data in URLs or hidden fields | Minimal | 0 | Low | [X] Bad |
| Using Django sessions to store user data server-side | Minimal | 0 | Low | [OK] Good |
def view(request):
request.session['count'] = request.session.get('count', 0) + 1
return HttpResponse(f"Count: {request.session['count']}")def view(request):
request.session['user'] = 'Bob'
del request.session['user']
return HttpResponse(request.session['user'])def set_color(request):
color = request.GET.get('color')
if color:
# Save color in session
...
return HttpResponse('Color saved')
def get_color(request):
# Retrieve color from session
...
return HttpResponse(f'Favorite color: {color}')