使用Ajax以随机间隔加载多个页面?

时间:2014-07-03 15:55:40

标签: 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 个答案:

答案 0 :(得分:0)

我不确定完全理解这种情况,但你可以尝试这样的事情:

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