Я развернул простое приложение 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