Я использую jQuery. Затем для загрузки моих скриптов последовательно. Однако мгновенная бомбардировка серверного процессора по-прежнему слишком высока. Я попытался добавить.delay после. Then так:
siteVisits()
.then(siteTerms)
.delay(30000)
.then(siteSources)
.delay(30000)
.then(siteBrowsers)
.delay(30000)
.then(siteCountries)
.delay(30000)
.then(siteContent);
Однако я получаю эту ошибку:
Uncaught TypeError: Object #<Object> has no method 'delay'
Кто-нибудь получил какие-либо идеи, как я могу добавить задержку до вызова каждой функции?
заранее спасибо
Неправильно использовать отложенные здесь, они созданы для совершенно другой проблемы. Не затормозите в них только потому, что вам нравится синтаксис.
function DelayedExecutor(delay) {
var self = this, queue = [], id;
function runNext() {
var def = queue.shift();
if (def && typeof def.func === "function") {
def.func.apply(def.context, def.args);
}
if (queue.length === 0) {
id = clearInterval(id);
}
}
this.add = function (func, args, context) {
queue.push({func: func, args: args, context: context});
if (!id) {
id = setInterval(runNext, delay);
runNext();
}
return self;
};
}
а также
var de = new DelayedExecutor(30000); /* new and improved model! */
de.add(siteTerms /*, [arguments], thisArg */);
de.add(siteSources);
de.add(siteBrowsers).add(siteCountries).add(siteContent);
Это не похоже на.delay, это должно быть использовано для задержки только ANIMATION, для такого рода задержки вы должны будете использовать setTimeout();
siteVisits()
.then(function() {
setTimeout(function() {
siteTerms.then(function() {
setTimeout(function() {
siteTerms.then()
}, 30000);
})
}, 30000);
});
Но почему эта задержка?