Показать сообщение отдельно
  #1 (permalink)  
Старый 20.07.2017, 13:13
Интересующийся
Отправить личное сообщение для djkey Посмотреть профиль Найти все сообщения от djkey
 
Регистрация: 21.06.2013
Сообщений: 12

xmlhttprequest синхронный запрос в цикле
Цель последовательно создать процедуры на sql сервере.
Делаю это следующим кодом:
function step4(){
	var lerror = 0;
	var classif = document.getElementById('classif').options[document.getElementById('classif').selectedIndex].value;
	var name_remote_DB = document.getElementById("name_remote_DB").value;
	var dblocalname = document.getElementById("dblocalname").value;	
	var elem = document.getElementById("listprocedure");
	var globalshifts = document.getElementById("loadperiod").getAttribute('dataload');
	var N = elem.getAttribute('Ntable');
		for (var i=1; i<=N; i++){
			
			var url = "CREATEPROCEDURE.php?procedure="+elem.rows[i].cells[1].innerHTML + "&dblocalname="+ dblocalname  + "&name_remote_DB="+name_remote_DB + '&classif='+ classif + '&globalshifts=' + globalshifts;
			console.log(url);
			var CREATEPROCEDURE =  new XMLHttpRequest();
			CREATEPROCEDURE.open('GET', url, false);
				CREATEPROCEDURE.onreadystatechange = function() {
					if (CREATEPROCEDURE.readyState == 4) {
						if(CREATEPROCEDURE.status == 200) {
							console.log(CREATEPROCEDURE.responseText);
							if(CREATEPROCEDURE.responseText != 1){
								document.getElementById("lasterror").innerHTML = document.getElementById("lasterror").innerHTML +'<br>'+CREATEPROCEDURE.responseText;
								lerror = 1;
							}
							else{
								/* в случае успеха скрываем крестик, показываем галочку */
								elem.rows[i].cells[2].childNodes[1].removeAttribute("style");
								elem.rows[i].cells[2].childNodes[3].style.display='none';
							}
						}
					}
				}
			CREATEPROCEDURE.send(null);
/* если произошла ошибка при создании выходим */	
			if(lerror == 1){ 
				return;
			}
		}			
}


Но визуальное изменение страницы происходит только когда будет завершён весь цикл. Как сделать что бы изменение страницы визуально происходило на каждом шаге?
Ответить с цитированием