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