js в Google Chrome
<script>
function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function SendAllCon() {
var xmlhttp = getXmlHttp();
xmlhttp.open("POST", 'адрес', false);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send();
if ( xmlhttp.responseText == "4" ) {
document.getElementById('SendAllConFast').disabled = false;
document.getElementById('displayprogress').innerHTML = '<h1><font color="#FF0000">[ВНИМАНИЕ!] На вашем счёте не достаточно средств!</font></h1>';
setTimeout(function(){document.getElementById('displayprogress').style.display = 'none';}, 5000);
} else {
if ( xmlhttp.responseText == "3" ) {
document.getElementById('SendAllConFast').disabled = false;
document.getElementById('displayprogress').innerHTML = '<h1><font color="#FF0000">[ВНИМАНИЕ!] ОШИБКА!</a></font></h1>';
setTimeout(function(){document.getElementById('displayprogress').style.display = 'none';}, 5000);
} else {
if ( xmlhttp.responseText == "1" ) { document.getElementById('displayprogress').style.display = 'none'; document.getElementById('SendAllConFast').disabled = false; location.reload(); } else { document.getElementById('displayprogress').innerHTML = xmlhttp.responseText + ' <img src="http://gruzivagon.ru/components/com_conteiner/load.gif" height="12px" />'; setTimeout(SendAllCon, 3000); }
}
}
}
function SendAllConFast1() {
var xmlhttp = getXmlHttp();
xmlhttp.open("POST", 'адрес', false);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send('autodis=' + document.getElementById('autodis').value);
xmlhttp.responseText;
document.getElementById('displayprogress').innerHTML = 'Отправка запроса <img src="http://gruzivagon.ru/components/com_conteiner/load.gif" height="12px" />';
document.getElementById('SendAllConFast').disabled = true;
document.getElementById('displayprogress').style.display = 'block';
setTimeout(SendAllCon, 3000);
}
</script>
вот код, работает хорошо, кроме Google Chrome. В Google Chrome скрипт работает, но страница зависает пока не появится конечный результат выполнения вычислений. Как избавится от зависания страницы Google Chrome? Пока временное решение добавил setTimeout(SendAllCon, 3000); что бы хоть как то было видно что страница ещё жива. |
Правильно, потому что вы вызываете запрос синхронно.
xmlhttp.open("POST", 'адрес', false);
в место false должно стоять true. http://xmlhttprequest.ru/ |
Цитата:
Вопрос в том, почему все браузеры правильно работают а гугл хром зависает, как убрать зависание страницы в гугле? Переход на асинхронный режим не подходит! |
Чем отличается правильная работа от неправильной?
|
Во всех браузерах страницы не зависает, прогресс обработки данных показывает количество обработанных данных.
В хроме страница просто зависает, и прогресс обработаных данных не виден. |
что такое "прогресс обработки данных" как он выглядит ?
Это наверно вот этот вызов имеется в виду
setTimeout(function(){document.getElementById('displayprogress').style.display = 'none';}, 5000);
и вопрос в том что chrome не вызывает событие запрос.responseText ? |
makklovskiy,
глупость использовать синхронные запросы и потом удивляться, почему зависает браузер. |
Хром вызывает все события, просто сама страница при работе скрипта зависает, поэтому даже при вызове этого события
document.getElementById('displayprogress').innerHTML = xmlhttp.responseText + ' <img src="http://gruzivagon.ru/components/com_conteiner/load.gif" height="12px" />';
на странице не чего не отображается, хотя на экране должен появится ответ сервера: "Отправка запроса" -> "Получение данных" -> "Обработка данных" Пы.Сы. WorM32, не можете помочь не разводите флуд в моей теме, идите пофлудите на другом форуме. :stop: |
Цитата:
|
WorM32, MallSerg если вы два придурка нехер флудить в теме, ума нет та прошли тему стороной, а то столько потратил времени на двух недоносков объясняя им простые значения, а результат нулевой.
|
| Часовой пояс GMT +3, время: 01:27. |