Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   XMLHttpRequest в цикле (https://javascript.ru/forum/misc/52100-xmlhttprequest-v-cikle.html)

optron 04.12.2014 05:04

XMLHttpRequest в цикле
 
как заставить работать?


var array = ["http://site1.com/", "http://site2.com/", "http://site3.com/" ];

for (var i = 0; i < array.length; i++) {


var xhr = new XMLHttpRequest();
xhr.open("GET", array[i], true);
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {
   
   console.log(xhr.responseText);
  
  }
}
xhr.send();

}

Работает только с последним url-ом

jsnb 04.12.2014 05:22

for (var i = 0; i < array.length; i++) {
  (function() {
    var xhr = new XMLHttpRequest();
    xhr.open("GET", array[i], true);
    xhr.onreadystatechange = function() {
      if (xhr.readyState == 4) {
        console.log(xhr.responseText);
      }
    }
    xhr.send();
  })();
}

danik.js 04.12.2014 12:21

var array = ["http://site1.com/", "http://site2.com/", "http://site3.com/" ];
 
for (var i = 0; i < array.length; i++) {
 
 
var xhr = new XMLHttpRequest();
xhr.open("GET", array[i], true);
xhr.onreadystatechange = function() {
  if (this.readyState == 4) {
    
   console.log(this.responseText);
   
  }
}
xhr.send();
 
}

ruslan_mart 04.12.2014 12:40

Не жалко пользователей? А то вот так вот и уходит трафик не понять куда.

danik.js 04.12.2014 13:50

Цитата:

Сообщение от Ruslan_xDD
Не жалко пользователей? А то вот так вот и уходит трафик не понять куда.

Я с NoScript сёрфю - никаких проблем. Сайты загружаются в разы быстрей. Да и трафик экономится. Нет сюрпризов с незакрываемыми вкладками, всякими баннерами (адблок все же не все режет).
Конечно, с некоторыми говносайтами проблемы. Некоторые даже контент бля не отображают (как они вообще из поисковой выдачи не вылетели) без JS. Или ссылки не работают. Но как правило такие кривые сайты не несут ничего уникального, поэтому достаточно просто закрыть сайт и открыть другой, чтобы решить проблему.

jsnb 04.12.2014 14:03

Цитата:

Сообщение от Ruslan_xDD
Не жалко пользователей? А то вот так вот и уходит трафик не понять куда.

А куда сейчас без аякса? Да и ценность экономии трафика (по крайней мере для десктопной версии сайта) сомнительна в настоящее время.

danik.js 04.12.2014 14:51

Цитата:

Сообщение от jsnb
Да и ценность экономии трафика (по крайней мере для десктопной версии сайта) сомнительна в настоящее время.

Ну разумеется. За рукожопство разработчика пусть отдуваются юзеры.
В мой дом проводной инет тянуть тупо отказываются. Приходится юзать мобильный, с ограниченным объемом трафика.

jsnb 04.12.2014 15:08

Цитата:

Сообщение от danik.js
Ну разумеется. За рукожопство разработчика пусть отдуваются юзеры.

Причем тут рукожопство? ТС хочет послать несколько аяксовых запросов только и всего то. Что они там будут делать и сколько трафика сожрут мы не знаем. Ну а если задуматься, то да, всё так как ты написал - за рукожопство (читай: "за уменьшение издержек разработки") страдают пользователи. И этому тренду уже не один год.

Цитата:

Сообщение от danik.js
В мой дом проводной инет тянуть тупо отказываются. Приходится юзать мобильный, с ограниченным объемом трафика.

Сочувствую. Но, увы, твой случай нерепрезентативен.

dobryk 04.12.2014 15:17

всё круто, но есть одно но.
что будет если количество запросов превысит количество допустимых браузером потоков?

будут прибивать ранее посленные запросы, хоть и ответ на них не пришел, ради открытия нового.

т.е если колво допустимое в браузере 8, то при посыле 10 запросов таким образом - 2 потеряются

по этому цепочка(допустимое колво потоков) - пришел ответ - посылается след запрос.

optron 05.12.2014 00:33

Цитата:

Сообщение от Ruslan_xDD (Сообщение 344420)
Не жалко пользователей? А то вот так вот и уходит трафик не понять куда.

Единственным пользователем буду я


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