just_guy95
@just_guy95
Bitrix 1C

Как показать заглушку на время прогрузки контента?

Всем добрый день!
Заказчик попросил присобачить сторонний скрипт на свой сайт, суть:
Скрипт подгружает iframe в котором находится свой document с div'ами и прочими html атрибутами, это обязательно необходимо подгружать через ajax т.к. этот скриптик должен подгружаться по нажатию кнопки, прикол в том, что при нажатие на кнопку вначале проходит пару секунд прежде чем начнется «строительство» всего document и заказчику это конечно не понравилось.
Скрипт бронирования номеров:
<script type="text/javascript" src="//ext.ihbooking.ru/loader.php?key=a6bb630f550135cf655e7201d7ce87f7&objid=801&customcss=gupmc&default=true&nodescription=true"></script>

Что необходимо:
Приделать глушилку (или прелоадер, называйте как хотите) на время пока формируется document и пока не загрузятся все div и изображения, как отследить этот момент? Может есть какое-нибудь событие которое сигнализирует о том, что все готово?

Набросал на скорую руку, для теста:
$.ajax({
			type: "POST",
			url: 'server.php',
			dataType: "html",
			data: '',
			complete: function() {
				console.log('Контент подгрузился (complete)');
			},
			success: function(result) {
				console.log('Контент подгрузился (success)');
				$("#content").html(result);
			},
			error: function(err) {
				console.log(err);
			}
		}).always(function() {
			console.log('Контент подгрузился (always)');
		});

Все события срабатывают раньше чем загружается контент, подскажите, может кто решал подобное?
Решения с setTimeOut и подобные не подходят, может быть ситуация, что у пользователя медленный интернет и загрузка будет дольше обычного.
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 2
@thisuserhatephp
Офлайн - losers Онлайн - lusers
...ajax
  beforeSend: function( ) {
   show_preloader();
  },      
  complete: function() {
    hide_prelodaer();
  }
...
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы