Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2022, 08:52
Новичок на форуме
Отправить личное сообщение для lysenkora Посмотреть профиль Найти все сообщения от lysenkora
 
Регистрация: 17.01.2022
Сообщений: 4

Показать загрузку пока выполняется код JS через промис
Добрый день!

Необходимо сделать, так чтобы пока выполняется JS код, пользователю показывалась гифка загрузки, после выполнения JS кода - загрузка скрывалась и показывались данные. Всё это пытаюсь реализовать через промис. Вот код:

function f_my(data){
	document.getElementById('div_loader_div_dannie').style.display = 'block';
	
	let promise = new Promise(function(resolve, reject){
		let dannie = '';
		
		for (j=0; j<100; j ++){
			for (i = 0; i < 100; i ++){
				dannie += '<div style="width:100%; height:50px; background:red; margin-bottom:10px; float:left;"></div>';
			}
		}

		resolve(dannie)
	});
	
	promise.then(result => f_obr(result));
}

function f_obr(result){
	document.getElementById('div_dannie').innerHTML = result;
	document.getElementById('div_loader_div_dannie').style.display = 'none';
}


Но при выполнении получаю длительно зависшую страницу, без соответствующего отображения gif загрузки. Прошу помочь с решением проблемы!
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2022, 10:44
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Тут все операции синхронные*, т.е. показ загрузки, рисование и скрытие загрузки происходят единомоментно. Возможно с некоторым подвисанием от того, что ты пытаешься нарисовать 10000 float элементов.

Добавление промиса не сделает магическим образом твой код асинхронным.

* then сработает в следующем таске, но на деле это ничего не меняет.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
eMail через JS konstantinopol Общие вопросы Javascript 15 12.01.2015 10:06
Вставка HTML кода и JS кода через innerHTML zhurchik AJAX и COMET 1 31.10.2014 17:32
Не выполняется JS в тегах загруженных через Ajax Selen Events/DOM/Window 4 24.05.2014 21:09
Вывыод контента через JS inet_boy Элементы интерфейса 0 18.11.2013 03:00
Как реализовать отключения JS кода через админку ? lamer Серверные языки и технологии 4 08.02.2012 17:23