Настой Jinja2 Страница зависает через некоторое время - PullRequest
0 голосов
/ 24 июня 2018

Я развернул простое приложение Flask на Apache2 в Ubuntu 16.04 x64 (Alibaba Cloud) с mod_wsgi. Я использую mysql в качестве сервера базы данных на том же экземпляре сервера Ubuntu.Версия Python: 3.5 .

В бэкэнде приложения я обрабатываю данные из некоторых запросов к базе данных из некоторых относительно больших таблиц базы данных.

На странице внешнего интерфейса,Я визуализирую данные, которые ожидаю получить из бэкэнда с помощью библиотеки D3PLUS JS.И на одной странице я показываю 4 диаграммы / графики в 4 HTML-div и два других div-а для отображения текстовых данных.Все запросы для данных в настоящее время обрабатываются ajax post .

Я обеспечил защиту CSRF для запроса ajax

    var csrf_token = "{{ csrf_token() }}";

    $.ajaxSetup({
               beforeSend: function(xhr, settings) {
                if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
              xhr.setRequestHeader("X-CSRFToken", csrf_token);
        }
    }
});

Почтовый запрос требует около 20-25 секунд, чтобы нормально получить ответ от бэкэнда.Вот пример почтового запроса:

  $('#company_button').on('click', function(event) {
  var company_name = ($('#company_select').select2('data'))[0].text;
  if (company_name==null){
    alert('Enter a name please!');
  }
  else{
      handle_all(company_name);
  }

  event.preventDefault();
  });

function handle_all(company_name){
    show_loader();
    //baike_getter(event,company_name);
    //recommend_getter(company_name);

    $.ajax({
        type:"POST",
        contentType: "application/json; charset=utf-8",
        data : JSON.stringify({company_name : company_name}),
        dataType: "json",
        url: flask_util.url_for('_company_info_all'),
        success: function (data) {
                                JSON.parse(data[0].recommendation);

                                remove_loader();
                                update_company(data[0].company_general[0]);
                                all_graphs(data[0].country,data[0].product,data[0].haiguan,data[0].shipping);
                                recommend_getter2(company_name);
                                baike_getter2(event,company_name);
                            }
    });

}

Размер данных JSON , полученных в ответ, составляет около 5-10 КБ и включает в себя китайский языкtext (Unicode).

Проблема заключается в том, что после двух-трех раз отправки пакета (фактически только один запрос, который обрабатывает обработку всего в бэкэнде) из почтовый запрос для бэкэнда, когда данные приходят в качестве ответа, страница замирает навсегда.Любая помощь будет поощряться.Заранее спасибо !

Редактирование / обновление: Диаграммы / графики, которые я генерирую на этой странице, tree_map, pie, 2 гистограммы .Все с .format({"locale":"zh_CN"}).Используемая версия D3Plus V1

...