Revencu
@Revencu

Как: JAVASCRIPT DOM: Добавленный елемент динамически не отрисовывается во время выполнении скрипта (IE)?

Internet Explorer 11:
Добавляется елемент в тело BODY, потом идет пауза.
Почему елемент до паузы не высвечивается на странице?
Как показать этот елемент до выполнении функции SLEEP?
<html>  
  <body id="body">  
  <button onclick="testfunction()">test</button>  
  </body>  
  </html>  
    
  <script language="javascript" type="text/javascript">  
  function testfunction()  
  {  
  var modal = document.createElement("div");  
  modal.id='wait_alert'  
  modal.style.position='fixed';  
  modal.style.top='50%';  
  modal.style.left='50%';  
  modal.style.marginTop='-25px';  
  modal.style.marginLeft='-150px';  
  modal.style.width='300px';  
  modal.style.height='50px';  
  modal.style.background='#eeeeee';  
  modal.innerHTML='My message ...';  
  modal.style.fontSize ='16px';  
  modal.style.paddingTop ='10px';  
  modal.style.textAlign ='center';  
  modal.style.border='1px #aaaaaa solid';  
  document.body.appendChild(modal)  
  modal.style.visibility='visible';  
  modal.style.display='block';  
  sleep(5000);  
  }  
    
  function sleep(milliseconds) {  
    var start = new Date().getTime();  
    for (var i = 0; i < 1e7; i++) {  
      if ((new Date().getTime() - start) > milliseconds){  
        break;  
      }  
    }  
  }  
  </script>
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 2
RubaXa
@RubaXa
SLEEP в JavaScript, ола-ла, не первый раз вижу такое, но всё не удавалось спросить подобного уникума «О чем же ты думал, автор?» Как по твоему работает этот код?
Ответ написан
DIITHiTech
@DIITHiTech
Fullstack javascript developer
Святая корова.... какая боль... это, как минимум, негуманно...
Это Вам не пхп, и блокирующий синхронный быдлокод тут не прокатит...

script вставить в head/body и вместо вызова sleep

setTimeout(function(){
  	modal.parentNode.removeChild(modal);
  },5000);


https://jsfiddle.net/DigitalBrain/9myzhuvp/
Ответ написан
Ваш ответ на вопрос

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

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