Имеется функция на 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>