2016-09-02 9 views
0

申し訳ありませんが、私の質問は少し長いかもしれないので、親切に私と一緒にいてください。 私はバグやエラーはありませんが、それは概念的な問題です。投票ネットワークアーキテクチャ

私は、9gag.comとよく似たソーシャルネットワークのウェブサイトを構築しています。そのため、ユーザーが投稿、コメント、返信に関連するアップ・ボートとダウンボートの機能を持っています。

私はこのウェブサイトをLaravelとAngularに、バックエンドとフロントエンドのフレームワークとしてそれぞれ構築しています。私はそれを構築することもできました。

ここでは、コメントごとに2つのリクエスト(HTTP)を送信し、ユーザーが特定のコメントや返信を既にアップまたはダウンしているかどうかを確認するために、すべてがうまくいきます。バックエンドでは、彼がそうしたかどうかを調べて、それに応じてng-classを適用するが、それはあまりにも多くの時間を要し、10のコメント(制限)があれば、20の要求をするだろう。これらの問題を処理するには、ログインユーザーがシナリオを最もエレガントな方法で実行したかどうかを確認します。

答えて

1

コメントを記載したAPIレスポンスに投票ステータスを含めます。

あなたのAPIレスポンスがログインしているユーザーのために、このようになります必要があります:ああ、実際に、私は本当に私のバックエンドで感覚でアプローチを気に入っ

[{ 
    "id": 123, 
    "text": "This is the comment. I voted it up.", 
    "vote": "up" 
}, 
{ 
    "id": 456, 
    "text": "This is another comment. I haven't voted on it.", 
    "vote": null 
} 
{ 
    "id": 789, 
    "text": "This is another comment. I didn't like this one so I voted it down.", 
    "vote": "down" 
}] 
+0

私はずっとそれのように応答して準備ができてますその投稿に関連するすべてのコメントと返信を繰り返して、ログインしているユーザーがそれを上書きしたのか、下書きしたのかを確認します。投稿IDを送信してそのデータを取得するGET/POST ajaxリクエストを作成できます。 どうもありがとうございますが、私は他の人たちがあなたの答えを承認済みとする前に、異なるアプローチを思いつくのを待つかもしれません。助けてくれてうれしい。 – Drazxier