0

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() は何もしないと述べています。では、次の「ページ」を取得する前に、現在の検索が完了するまでどのように待機するのでしょうか?

彼らのドキュメンテーションはひどいものです、IMHO。サーバーから合計 1000 件の検索結果があるとします。そして、結果 900-1000 を見たいとします。900 に到達するまで AppendNext を何度も呼び出し続ける必要がありますか?

ありがとうボブ

4

1 に答える 1

0

Spotify アプリ API に組み込まれている検索機能を使用する場合、ページネーションはありません。結果の数を増やして、50 以上の結果を返すことができます (ドキュメントの検索ページを参照)。ただし、数は限られています (現時点では 200 トラックのようです)。

代わりに、 Web APIへの要求を実行する別の方法があります。

于 2013-03-20T08:24:14.093 に答える