0

jQuery を使用して Web サイトに Dribbble データを表示しています。この場合、以下のコードを使用して、Dribbble プロファイルに最後のショットを表示しようとしています。

$.getJSON('http://api.dribbble.com/players/joaotiago/shots?per_page=1&callback=?', function(data) {

    url = data.shots[0].short_url;
    title = data.shots[0].title;
    src = data.shots[0].image_teaser_url;

    $('#dribbble a').attr('href', url);
    $('#dribbble a').attr('title', 'Last shot on Dribbble: '+title);
    $('#dribbble a').css({
        'background' : 'url('+src+')',
        'background-size' : 'contain'
    });      
});

ほとんどの場合、最後のショットは 20 秒後に表示され (私の Web サイトに表示される 3 つの円の最初の円)、502 が表示されることもあります。注意してください:Uncaught TypeError: Cannot read property 'artist' of undefinedコンソールからのエラーは、別の無関係な問題によって引き起こされます私は持っています。なぜこれが非常に遅く、時にはタイムアウトになるのかについて何か提案はありますか?

4

2 に答える 2

1

ええと...それは単に彼らのAPIが痛々しいほど遅いかもしれません(そしてそうであるようです)。あなたの側でできることはあまりないと思います...

確認として、ブラウザのアドレス バーから直接アクセスしてみてhttp://api.dribbble.com/players/joaotiago/shots?per_page=1ください。表示されるまでにかなりの時間がかかることに気付くでしょう。

唯一のオプションは、それらを記述して API の動作を高速化するか、結果をキャッシュして非同期に更新することです。

  1. キャッシュされた結果を表示する (理論的には高速)
  2. API から結果を取得します (時間がかかります。ここで急ぐ必要はありません。既に何かが表示されています)。
  3. 変わらなければストップ(利益)
  4. 変更された場合は、新しい結果を保存します (そして、ページに表示された結果を新しい結果と入れ替えるかもしれません... 良い経験ではありませんが、最初の訪問者だけに影響します)

乾杯。

于 2012-12-05T12:09:35.880 に答える