У меня есть тысячи строк (значения x и y), которые возвращаются из запроса SQL из вызова AJAX. Каждая строка затем наносится на график (Plotly JS) и заполняет таблицу на странице. То, что я хотел бы сделать, пока он строит графики и добавляет их в таблицу, показывает анимацию загрузки (сделанную с SVG и CSS). Проблема в том, что анимация застряла, поскольку оба элемента (таблица / график и анимация загрузки) находятся в одном и том же окне, и я читал и пробовал WebWorker, но могу только отправлять / получать сообщения, но не могу влиять на элементы в WebWorkers.
Ajax код:
function openReport(reportId) {
$.ajax({
url: '/OpenReport',
type: "GET",
contentType: "application/json; charset=utf-8;",
dataType: "json",
async: false,
data: { "reportId": reportId },
success: function(data) {
showLoader();
plotGraph(data);
addToTable(data);
hideLoader();
}
});
}
Я пытался внедрить загрузчик в WebWorkers:
onmessage = function(e) {
plotGraph(e.data);
addToTable(e.data);
};
Но поскольку для построения графика также необходим доступ к окну, функции не даже не загружается. И импортируя скрипты, мне также пришлось бы импортировать jQuery, что кажется чрезмерным.