aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/middleware.py
diff options
context:
space:
mode:
authorAymeric Augustin2013-11-10 10:10:28 +0100
committerAymeric Augustin2013-11-10 16:02:49 +0100
commitf92aba225936fa768c098a8f1db51125ac1715ec (patch)
treef853c2a91723157ad56b1765d03dcfbffd3e0b22 /debug_toolbar/middleware.py
parent6a8526a93b60ebae214dbe0d4cbf172c311802b9 (diff)
downloaddjango-debug-toolbar-f92aba225936fa768c098a8f1db51125ac1715ec.tar.bz2
Disable instrumentation for disabled panels.
This eliminates the performance overhead when a panel is disabled.
Diffstat (limited to 'debug_toolbar/middleware.py')
-rw-r--r--debug_toolbar/middleware.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py
index 4f5b9bd..80e9305 100644
--- a/debug_toolbar/middleware.py
+++ b/debug_toolbar/middleware.py
@@ -95,6 +95,7 @@ class DebugToolbarMiddleware(object):
panel.enabled = panel.dom_id() not in request.COOKIES
if not panel.enabled:
continue
+ panel.enable_instrumentation()
panel.process_request(request)
self.__class__.debug_toolbars[threading.current_thread().ident] = toolbar
@@ -130,12 +131,13 @@ class DebugToolbarMiddleware(object):
{'redirect_to': redirect_to}
)
response.cookies = cookies
+ for panel in toolbar.panels:
+ if not panel.enabled:
+ continue
+ panel.process_response(request, response)
+ panel.disable_instrumentation()
if ('gzip' not in response.get('Content-Encoding', '') and
response.get('Content-Type', '').split(';')[0] in _HTML_TYPES):
- for panel in toolbar.panels:
- if not panel.enabled:
- continue
- panel.process_response(request, response)
response.content = replace_insensitive(
force_text(response.content, encoding=settings.DEFAULT_CHARSET),
self.tag,