Spotify开发人员搜索

时间:2013-03-08 22:58:35

标签: spotify

我对搜索功能在Spotify API中的工作方式感到困惑。他们的例子是这样的:

    var sp = getSpotifyApi();
    var models = sp.require('$api/models');

    var search = new models.Search('Rihanna');
    search.localResults = models.LOCALSEARCHRESULTS.APPEND;

    var searchHTML = document.getElementById('results');

    search.observe(models.EVENT.CHANGE, function() {
        var results = search.tracks;
        var fragment = document.createDocumentFragment();
        for (var i=0; i<results.length; i++){
            var link = document.createElement('li');
            var a = document.createElement('a');
            a.href = results[i].uri;
            link.appendChild(a);
            a.innerHTML = results[i].name;
            fragment.appendChild(link);
        }

        searchHTML.appendChild(fragment);
    });

    search.appendNext();

所以,我猜调用appendNext()启动搜索,内部函数在有结果时被调用?但结果仅限于总数的某个数字(默认为50)。你怎么得到其余的?你是否从回调中递归地再次调用appendNext()?此外,这是否意味着在您执行此操作后,您的列表包含原始结果,或者原始结果是否已替换?有人知道搜索所有可用结果的示例吗?

他们还提到如果搜索正在运行,则appendNext()不执行任何操作。那么,在获得下一个“页面”之前,你如何优雅地等待当前搜索完成?

他们的文件很糟糕,恕我直言。假设您从服务器总共有1000个搜索结果。并说我希望看到结果900-1000。我是否一直反复调用AppendNext直到我到达900?

由于 鲍勃

1 个答案:

答案 0 :(得分:0)

使用Spotify Apps API中内置的搜索功能时没有分页。您可以增加结果数量,使其返回超过50个结果(请参阅the Search page in the documentation),尽管数量有限(目前似乎是200首曲目)。

还有另一种方法,即向Web API执行请求。