Javascript.RU

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

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); что бы хоть как то было видно что страница ещё жива.

Последний раз редактировалось makklovskiy, 23.07.2014 в 14:00.
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2014, 14:41
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

Правильно, потому что вы вызываете запрос синхронно.
xmlhttp.open("POST", 'адрес', false);

в место false должно стоять true.

http://xmlhttprequest.ru/
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2014, 15:14
Интересующийся
Отправить личное сообщение для makklovskiy Посмотреть профиль Найти все сообщения от makklovskiy
 
Регистрация: 23.07.2014
Сообщений: 19

Сообщение от WorM32 Посмотреть сообщение
Правильно, потому что вы вызываете запрос синхронно.
xmlhttp.open("POST", 'адрес', false);

в место false должно стоять true.

http://xmlhttprequest.ru/
Что за глупости вы ответили, я прекрасно знаю как и чем я передаю.
Вопрос в том, почему все браузеры правильно работают а гугл хром зависает, как убрать зависание страницы в гугле?

Переход на асинхронный режим не подходит!
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2014, 15:31
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Чем отличается правильная работа от неправильной?
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2014, 15:35
Интересующийся
Отправить личное сообщение для makklovskiy Посмотреть профиль Найти все сообщения от makklovskiy
 
Регистрация: 23.07.2014
Сообщений: 19

Во всех браузерах страницы не зависает, прогресс обработки данных показывает количество обработанных данных.
В хроме страница просто зависает, и прогресс обработаных данных не виден.
Ответить с цитированием
  #6 (permalink)  
Старый 23.07.2014, 15:43
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

что такое "прогресс обработки данных" как он выглядит ?
Это наверно вот этот вызов имеется в виду
setTimeout(function(){document.getElementById('displayprogress').style.display = 'none';}, 5000);


и вопрос в том что chrome не вызывает событие запрос.responseText ?

Последний раз редактировалось MallSerg, 23.07.2014 в 15:47.
Ответить с цитированием
  #7 (permalink)  
Старый 23.07.2014, 16:34
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

makklovskiy,
глупость использовать синхронные запросы и потом удивляться, почему зависает браузер.
Ответить с цитированием
  #8 (permalink)  
Старый 24.07.2014, 07:51
Интересующийся
Отправить личное сообщение для makklovskiy Посмотреть профиль Найти все сообщения от makklovskiy
 
Регистрация: 23.07.2014
Сообщений: 19

Хром вызывает все события, просто сама страница при работе скрипта зависает, поэтому даже при вызове этого события
document.getElementById('displayprogress').innerHTML = xmlhttp.responseText + ' <img src="http://gruzivagon.ru/components/com_conteiner/load.gif" height="12px" />';

на странице не чего не отображается, хотя на экране должен появится ответ сервера: "Отправка запроса" -> "Получение данных" -> "Обработка данных"

Пы.Сы. WorM32, не можете помочь не разводите флуд в моей теме, идите пофлудите на другом форуме.
Ответить с цитированием
  #9 (permalink)  
Старый 24.07.2014, 09:01
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Сообщение от WorM32
глупость использовать синхронные запросы и потом удивляться, почему зависает браузер.
полностью согласен =)
Ответить с цитированием
  #10 (permalink)  
Старый 24.07.2014, 09:16
Интересующийся
Отправить личное сообщение для makklovskiy Посмотреть профиль Найти все сообщения от makklovskiy
 
Регистрация: 23.07.2014
Сообщений: 19

WorM32, MallSerg если вы два придурка нехер флудить в теме, ума нет та прошли тему стороной, а то столько потратил времени на двух недоносков объясняя им простые значения, а результат нулевой.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение своих js скриптов в Chrome на любых сайтах avramch Opera, Safari и др. 5 28.07.2016 16:11
Как работает Google Analytics: смотрю в "Инструментах разработчика" Chrome hrundel Общие вопросы Javascript 0 10.10.2013 19:31
window.parent в Google Chrome в файловом протоколе Кора Оливе Events/DOM/Window 0 23.12.2012 22:58
frames в google chrome sasha.sivakov@mail.ru Общие вопросы Javascript 1 28.02.2012 22:47
Chrome Developer Tool, js читабельный вид TicTac Оффтопик 0 05.06.2011 16:35