0

我有一个应用程序必须在一个循环中进行 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);
    }
});
4

1 回答 1

0

这取决于你想要做什么。如果结果直接(排队)进入您正在呈现的用户网页(并且没有可以做的批量调用而不是单独的调用),那么您几乎无能为力(您至少需要 5 秒呈现该页面)。

如果您经常重复使用相同的内容,那么如果服务提供商的条款允许,可能值得在短时间内缓存调用结果,以避免不得不一次又一次地点击所有调用。

同意上面的观点——如果你直接渲染到一个有多个用户的网页,你会很痛苦——最好考虑一个简短的缓存策略。

于 2012-04-11T04:29:50.840 回答