Performance: Per-view caching
Per-view caching improves page load speed by storing the full response of a view, reducing server processing time on repeated requests.
Jump into concepts and practice - no test required
@cache_page(60 * 15) def my_view(request): data = expensive_database_query() return render(request, 'template.html', {'data': data})
def my_view(request): data = expensive_database_query() return render(request, 'template.html', {'data': data})
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| No caching | N/A (server-side) | N/A | High (slow response delays paint) | [X] Bad |
| Per-view caching | N/A (server-side) | N/A | Low (fast response enables quick paint) | [OK] Good |
@cache_page(timeout) in Django views?@cache_page(timeout)@cache_page@cache_page(60)
def home(request):
return HttpResponse(str(time.time()))@cache_page(60) doestime.time()from django.views.decorators.cache import cache_page
@cache_page('60')
def about(request):
return HttpResponse('About page')Vary header to separate cache by user sessionVary: Cookie tells cache to store different versions per user session cookie.@cache_page(120) and add Vary: Cookie header to cache per user session -> Option C