私は父のためにこのWeb サイトを運営しています。このWeb サイトでは、父の Twitter フィードからツイートを取得し、別の形式で表示しています。現在、ツイートは javascript を使用してプルされているため、完全にクライアント側です。物事を行う最も効率的な方法は何ですか?ウェブサイトのヒット率はほとんどありませんが、私はそれをスケーリングする最良の方法に興味があります. どんなアドバイスも素晴らしいでしょう。また、いつかストリームに記事を含めることも考えています。それを実装する最良の方法は何ですか?
6 に答える
Twitter API リクエストは、1 時間あたり 150 に制限されています。ページがそれ以上要求されると、Twitter API からエラー (HTTP 400 エラー) が返されます。そのため、ツイートをサーバーにリクエストし、レスポンスを一定期間キャッシュすることをお勧めします。最新のツイートを 1 時間に最大 150 回リクエストできます。ページがリクエストされるたびに、API を直接呼び出すのではなく、サーバー サイド スクリプトからキャッシュされたツイートを受け取ります。
Twitterのドキュメントから:
認証されていない呼び出しは、1 時間あたり 150 リクエストまで許可されます。認証されていない呼び出しは、要求を行っているサーバーまたはデバイスの公開 IP に対して測定されます。
私は最近、皆さんとまったく同じ方法で Twitter API と統合する作業を行いました。アプリのテスト中だけでも、すぐにレート制限に達してしまいました。そのアプリは現在、ツイートをサーバーにキャッシュしており、キャッシュを 1 時間ごとに数回更新しています。
クライアント側を使用して Twitter API を呼び出すことをお勧めします。サーバーへの呼び出しは避けてください。クライアント側の js を使用することの唯一の欠点は、ビューアで js を無効にするかどうかを制御できないことです。
ストリームにどのような記事を含めたかったですか? あなたのウェブサイトに直接投稿されたブログ記事や外部の記事が好きですか?
クライアント側でそれらを実行できる場合は、それを試してください。帯域幅の使用状況をブラウザーにプッシュします。サーバーへの負荷が軽減されます。スケーラビリティも高いと思います。クライアントが Web リクエストを作成できる限り、サイトを表示できます。これ以上簡単なことはありません!サーバーがボトルネックになることはありません。
APIを介して記事を取得できる場合、私は現在のセットアップに固執し、すべてをクライアント側に保持します。
そのような非常に需要の低いものについては、実際にはそれほど重要ではありません. ユーザーごとに多数のタスクがある場合は、サーバー側を検討することをお勧めします。多数のユーザーがいて、ユーザーごとに少数のタスク (取得するツイートなど) しかない場合は、おそらくクライアント側の AJAX が適しています。記事を含める限り、作業するデータのサイズのために、おそらくサーバー側に行きます..
ツイート サーバー側をプルすることで、すべてのツイート トラフィックをサーバー経由でルーティングします。そのため、すべてのトラフィックがサーバーから送信され、Web サイトのパフォーマンスが低下する可能性があります.
クライアント側では不可能なツイートで魔法のようなことをしない場合は、現在のソリューションに固執する必要があります。それに何の問題もなく、途方もなくスケーリングします (もちろん、Twitter のサーバーよりもパフォーマンスが優れていないと仮定して ;))
クライアント側からツイートをプルする方が、スケーラビリティの点で間違いなく優れています。記事の追加に関する 2 番目の質問で何を探しているのかわかりません