Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   XMLHttpRequest (https://javascript.ru/forum/events/80761-xmlhttprequest.html)

Conus 28.07.2020 18:47

XMLHttpRequest
 
подскажите пожалуйста почему статус не меняется

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();  }


var state = false, last = (new Date().getTime() + 1000)
			
			while(  last >= new Date().getTime() ) 
			{
 		
						switch(xmlhttp.readyState) 
						{     case 0:  xmlhttp.open('POST', '/', true);   xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
												 document.body.innerHTML += '1'; 
									  break;

							case 1: if(xmlhttp.readyState == 1 && state) { xmlhttp.send("mod=" + encodeURIComponent(send ) );  state = true; }
										else { document.body.innerHTML += ' . '; } 

// здесь происходит повторное отправление xmlhttp.send()

									  break;

						        case 2:    document.body.innerHTML += xmlhttp.readyState;  break; 
						        case 3:  document.body.innerHTML += '-.-'; break; 
       					                case 4:  document.body.innerHTML =  xmlhttp.response; return; 
						 } 


				}

Conus 28.07.2020 20:43

тут люди есть вообще?
если кто не интересуется
код по понятнее

var last = (new Date().getTime() + 1000), lasState;
			
			while(  last >= new Date().getTime() ) 
			{
				document.body.innerHTML += ' <br>' + xmlhttp.readyState

				if(lasState != xmlhttp.readyState)
				{
     				if(xmlhttp.readyState == 0) 
                                { xmlhttp.open('POST', '/', true); 
                                    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                                 }
					if(xmlhttp.readyState == 1) { xmlhttp.send("mod=" + encodeURIComponent( 'send' ) ); }
					if(xmlhttp.readyState == 2) {  }
					if(xmlhttp.readyState == 3) {  }
					if(xmlhttp.readyState == 4) {  }
						if(lasState != xmlhttp.readyState) { lasState = xmlhttp.readyState; }
			    }
				
               

			}

voraa 28.07.2020 22:23

Мне кажется совсем неправильно в цикле проверять readyState.
Для этого есть onreadystatechange

Nexus 28.07.2020 22:48

Цитата:

Сообщение от Conus
если кто не интересуется
код по понятнее

https://beautifier.io/

Conus 29.07.2020 08:53

может кто знает исходник onreadystatechange где поглядеть хоть

Nexus 29.07.2020 10:48

Conus, а зачем вам исходник XMLHttpRequest?
Описание метода onreadystatechange: https://developer.mozilla.org/ru/doc...adystatechange


Часовой пояс GMT +3, время: 01:35.