У меня есть JavaScript, который извлекает данные из URL-адреса, а затем перебирает результаты с помощью forEach
l oop.
Операция может занять до минуты, поэтому я хотите отобразить символ загрузки на странице, чтобы указать пользователю, что он еще не должен взаимодействовать со страницей.
function getFloodAreaPolygon() {
let request = new XMLHttpRequest();
let url = floodAreaData[0].polygon;
request.open("GET", url, true);
request.onload = function () {
let data = JSON.parse(this.response);
if (request.status >= 200 && request.status < 400) {
data.features.forEach(geojsonFeature => {
loadFloodAreaPolygon(geojsonFeature);
});
} else {
console.log("error");
}
};
request.send(null);
}
Я написал код в displayLoadingIcon()
, чтобы показать значок и hideLoadingIcon()
чтобы скрыть его.
Я подумал, что если бы я отобразил значок в начале функции и спрятал его после вызова request.send(null)
, то это продолжалось бы на протяжении всей функции, однако значок почти исчезнет
Как я могу обойти это?
РЕДАКТИРОВАТЬ: Для ясности, это не запрос AJAX, выполнение которого занимает около минуты, это обработка, содержащаяся в the forEach
l oop, где loadFloodAreaPolygon(geojsonFeature)
преобразует результаты в объект маркера Leaflet.