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

Loading multiple pages with random interval with Ajax?

本文关键字:加载 Ajax 随机 使用      更新时间:2023-09-26

希望有人能帮助我,我是JavaScript新手,所以请原谅我的错误。

我正在制作一个数据收集器bookmarklet,它可以下载许多页面(>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;
};

我不确定是否完全理解这种情况,但您可以尝试这样做:

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