我有一个应用程序,它必须在循环中进行50到100个API调用。烂番茄每秒限制10次。因此,我的请求在两者之间失败,每次都会得到不同的结果。在不超过10个每秒/秒的限制的情况下,这50个请求的有效方法是什么?这是我的代码:
$.each(elem, function (index, item) {
var $placeholder = $('<div>').appendTo("div.content");
$.ajax({
type: 'post' ,
url: moviesSearchUrl + '&q=' + encodeURI(item) + '&page_limit=1',
dataType: "jsonp",
async: false,
success: searchCallback
});
function searchCallback(data) {
var movies = data.movies;
var markup = index + ': '+ movies[0].title + '<img class=" bord" src="' + movies[0].posters.thumbnail + '" /><br/>';
$placeholder.replaceWith(markup);
}
});
答案 0 :(得分:0)
这取决于你想要做什么。如果结果直接(在线)进入您正在渲染的用户网页(并且没有可以进行的批量调用而不是单独的调用)那么您可以做的很少(您将至少花5秒钟)渲染那个页面)。
如果您经常重复使用相同的内容,那么如果服务提供商的条款允许,则可能值得在短时间内缓存呼叫结果,以避免不得不一次又一次地拨打所有呼叫。
同意上述观点 - 如果您直接渲染到具有多个用户的网页,您将遭受严重影响 - 最好考虑一个简短的缓存策略。