У меня есть инструментальная панель, которая отображает некоторую статистику, и до сих пор она была довольно статичной, то есть, если я хотел свежих данных, мне приходилось обновлять страницу. С тех пор я перешел на более динамичный способ с помощью jquery для загрузки статистики за интервал. Он работает довольно хорошо, мне больше не нужно обновлять страницу.
Тем не менее, я заметил, что если я оставлю страницу открытой на некоторое время, использование памяти будет расти и расти без признаков остановки.
Он начинается примерно с 50 МБ, затем через пару часов (может быть, только 1) он достиг 1,2 ГБ. Обновление страницы не освобождает память!
И очевидный вопрос ... Что я делаю не так?
Примеры:
@app.route("/getstats")
def getstats():
return jsonify({'data': render_template('stats.html', stats=stats())})
<script type="text/javascript">
$(function poll() {
var isMenuClosed = document.querySelector('.mdl-menu__container.is-visible') == null;
if (isMenuClosed) {
$.getJSON('/getstats',
function(data) {
$("tbody#stats").empty().append(data.data);
componentHandler.upgradeDom();
});
$.getJSON('/getwidgets',
function(wdata) {
$("div#widgets").empty().append(wdata.data);
});
}
setTimeout(poll,5000);
return false;
});
</script>
У меня очень ограниченные знания по Python и особенно по JavaScript.