diff options
| author | Aymeric Augustin | 2013-11-10 10:10:28 +0100 |
|---|---|---|
| committer | Aymeric Augustin | 2013-11-10 16:02:49 +0100 |
| commit | f92aba225936fa768c098a8f1db51125ac1715ec (patch) | |
| tree | f853c2a91723157ad56b1765d03dcfbffd3e0b22 /debug_toolbar/middleware.py | |
| parent | 6a8526a93b60ebae214dbe0d4cbf172c311802b9 (diff) | |
| download | django-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.py | 10 |
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, |
