Показать сообщение отдельно
  #1 (permalink)  
Старый 26.08.2015, 11:31
Новичок на форуме
Отправить личное сообщение для geekay Посмотреть профиль Найти все сообщения от geekay
 
Регистрация: 26.08.2015
Сообщений: 2

Очерёдность событий в разных браузерах.
Имеется функция на javascript, вызывающая скрипт php на стороне сервера. На время выполнения этого скрипта php нужно показать некое сообщение для пользователя. По какой-то причине вот этот код:
document.getElementById('text_wait').style.visibility="visible";
выполняется на Firefox, то есть я вызываю функцию, надпись становится видимой, после выполнения скрипта она исчезает.
Chrome и Vivaldi каким-то образом "оптимизируют" этот код, и интерфейс пользователя "подвисает", сообщение не появляется, пользователю страшно =) Вот полный ков функции:
<script>
function onApplyChanges(){

    document.getElementById('text_wait').style.visibility="visible";

    xmlhttp=new XMLHttpRequest();
    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            document.getElementById('text_wait').style.visibility="hidden";
            switch (xmlhttp.response){
                case "0":
                    rebootRedirect();
                    break;
                case "1":
                    alert("Ошибка! Не задан файл для распаковки.")
                    break;
                case "2":
                    alert("Ошибка! Не найден загруженный файл.")
                    break;
                case "3":
                    alert("Ошибка! Несовпадение контрольной суммы.")
                    break;
                case "4":
                    alert("Ошибка при распаковке файла.")
                    break;
                case "7":
                    alert("Ошибка! В обновлении отсутствует один или больше файлов.")
                    break;
                case "8":
                    alert("Ошибка! В обновлении файл веб-интерфейса.")
                    break;
                default:
                    alert("Неизвестная ошибка: "+xmlhttp.response);
                    break;

            }
        }
    }
    xmlhttp.open('POST', 'php/unpack.php', false);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-Form-urlencoded");
    xmlhttp.send();
};
</script>
Ответить с цитированием