@ince

Почему функции не исполняется в порядке вызова?

Вызываю две свои функции:
getFile(FILE_LOCATIONS, function (data) { makeArrLocations(data); });
alert(3);
handling();

Сначала почему-то исполняется вторая, после - первая.

Функция getFile:
function getFile(fileName, func){
		alert(0)
		$.ajax({
			url: fileName,
			dataType: 'text',
			
			success: function (data) { alert(1); func(data); },
			error: function (jqXHR, exception) {
				var msg = '';
				msg = 'Uncaught Error.\n' + jqXHR.responseText;
				alert(msg);
			}			
		});
		alert(2)
	};


Решил отследить alert'ами и пронумеровал их в ом порядке, в котором я предполагал их очередность исполнения, но на деле вышло так:
- сначала исполняется alert(0),
- после alert(2),
- дальше alert(3) ,
- позже alert(1)
- и в конце alert(4) (из функции handling()).

Как так получается? Полный бардак.
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Не бардак, а асинхронное выполнение кода, специально чтобы браузер не "зависал" пока ждет ответ от сервера.
Вы конечно можете переписать все в синхронном стиле, в jq для этого настройка есть (async: false) . Но лучше почитать учебник и понять, а не тормозить.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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