Загрузка нескольких страниц со случайным интервалом с помощью Ajax?

#javascript #jquery #ajax

#javascript #jquery #ajax

Вопрос:

Надеюсь, кто-нибудь сможет помочь, я новичок в JavaScript, поэтому, пожалуйста, простите мои ошибки.

Я создаю букмарклет сборщика данных, который загружает много страниц (> 400) и форматирует его. Ну, сервер, с которого я пытаюсь загрузить эти страницы, не мой, поэтому я бы не хотел повышать его загрузку и быть забаненным или что-то в этом роде.

Итак, я хочу установить некоторый случайный интервал между каждой загрузкой. Насколько я знаю, jQuery.ajax является асинхронной функцией и не имеет такой опции. У кого-нибудь есть идеи, как это сделать?

Спасибо за любую помощь — мой код ниже:

 upload = function() {
  var getarray = [];

  getarray.push($.ajax({
    // do this for all pages in list
    url: '/01.html'
    success: function() { // format data }
  }));

  $.when.apply($, getarray).done(function() {
    // upload
  });


  ); return;
};
  

Ответ №1:

Я не уверен, что полностью понимаю ситуацию, но вы можете попробовать что-то подобное:

 getRandom = function(min, max){
  return Math.floor(Math.random() * (max - min   1))   min;
}

upload = function() {
  var getarray = [];

  getarray.push($.ajax({
    // do this for all pages in list
    url: '/01.html'
    success: function() {
    // format data

    var timeout = getRandom(0, 10000);
    // return random value between 0 and 10sec

      setTimeout(function(){
      upload();
      }, timeout);
    }
  }));

  $.when.apply($, getarray).done(function() {
    // upload
  });


  ); return;
};