Как правильно понять этот сложный код?

ак как JavaScript занимаюсь всего месяц, я еще не очень освоил детали. Нужно разъяснение по работе кода. А именно - что происходит в каждой строчке кода:
function getHeader() {
	$.post('modules/constructor.php',
			{ 'action': "header", 'lang': lang },
			 function(data) { 
				  $('div#header').empty().append(data); 
			 	}
			).done(function() {
				getFooter()
			})
}
function getFooter() {
	$.post('modules/constructor.php', 
			{ 'action': "footer", 'lang': lang },
			 function(data) { 
				  $('div#footer').empty().append(data); 
			 	}
			).done(function() {
				getScriptHandF()
				getContent(content)
			})
}
function getContent(cont) {
	$.post('modules/constructor.php', 
			{ 'content': cont, 'lang': lang, 'device': devi },
			 function(data) { 
				  $('div#content-wrapper').empty().append(data); 
			 	}
			).done(function() {
				var paths  = [];
				var images = $('body').find('img');
				images.each(function() {
					paths.push($(this).attr('src'));
				});
				 
				preloadImages(paths, function () {
					$("html,body").animate({"scrollTop":0},200);
					$('#preload').fadeOut(1000); 
					getScript(); 
					if (cont=="home") getSlider();
				});
			})
}
  • Вопрос задан
  • 687 просмотров
Решения вопроса 2
PretorDH
@PretorDH
HTML5, CSS3, PHP, JS - люблю в чистом виде.
Учи матчасть...

/* Функция асинхронной загрузки хеадера */
function getHeader() {
  $.post('modules/constructor.php',     /* Аппелируем к серверному скрипту по указаному адресу */
      { 'action': "header", 'lang': lang },   /* Передаем параметры на сервер */
       function(data) {                            /* Callback - параметр анонимня функция. Вызывается при удачном запросе */
          $('div#header')                          /* Выбираем #header - но правильнее $('#header'), ибо 2 блока с одним id не правильно */
             .empty().append(data);           /* Очищает выбраный блок и дописывает к нему полученные данные */
       	}
      ).done(function() {                         /* Событие выполняется после удачного выполнения запроса */
        getFooter()                                 /* Вызов запроса Fotter */
      })
}

/* далее аналогично но для footer */
 
function getFooter() {
  $.post('modules/constructor.php',    
      { 'action': "footer", 'lang': lang },    
       function(data) {                            
          $('#footer').empty().append(data); 
       	}
      ).done(function() {
        getScriptHandF();              /* Здесь была синтаксическая ошибка: отсутствие замыкающего ";" */
        getContent(content)
      })
}
function getContent(cont) {
  $.post('modules/constructor.php', 
      { 'content': cont, 'lang': lang, 'device': devi },
       function(data) { 
          $('#content-wrapper').empty().append(data); 
       	}
      ).done(function() {

/* Далее человек питался сделать прелоадинг картинок. НО! */
/* Картинки уже начались загружатся после  выполнения
 колбеков из загрузок getContent, getHeader, getFoоter */
        var paths  = [];                  /* Готовим массив для прелоадинга картинок */
        var images = $('body').find('img');    /* Выбираем все картинки */
        images.each(function() {                  /* Пробегаемся по всем картинкам */
          paths.push($(this).attr('src'));          /* Записываем ссылку на картинку в масив */
        });
         
        preloadImages(paths, function () {   /* Вызывает preloadImages Описания процедуры нет */
          $("html,body").animate({"scrollTop":0},200);  /* Анимирует скроллинг если страница прокручена на верх страницы */
          $('#preload').fadeOut(1000);   /* Анимирует прозрачность кроющего блока #preload */
          getScript();                              /* Вызывает getScript */
          if (cont=="home") getSlider(); /* Вызывает getSlider если страница домашняя */
        });
      })
}
Ответ написан
@deliro
Обычные AJAX запросы. Учите jQuery.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы