2017-11-12 9 views
0

私のページのセクションでは、ユーザーからの最新の入力データを示すActivityFeedが必要です。春のアクティビティフィードを作成する適切な方法

したがって、UserモデルとSurveyモデルがあります。

ユーザーは入力をしてから、Surveyテーブルに表示します。 調査モデルは、タイムスタンプ

@CreationTimestamp 
@Column(name = "submitedTime",nullable=false) 
@Temporal(TemporalType.TIMESTAMP) 
private Date submittedDate; 

を持つフィールドを持っているので、私がやったことはSurveyRepositoryであると呼ばれる方法:

List<Survey> findTop10ByOrderBySubmittedDateDesc(); 

をそして、これは私の10回の最新の提出調査を返します。 は、その後、私は、このためのエンドポイントを作成します。

@RequestMapping(value="getActivityFeed",method=RequestMethod.GET) 
public @ResponseBody List<Survey> getSurveys(){ 
    return surveyService.findTop10ByOrderBySubmittedDateDes(); 
} 

はその後、私のJSからのAjaxコールと私はエンドポイントを呼び出し、情報を引き出します。

これは、アクティビティフィードを作成する適切な方法ですか? 送信されたすべての値の後で、アクティビティフィードが更新される方法はありますか?

私はSpring-BootとThymeleafも使用しています。

おかげ

答えて

0

私はあなたがAjaxを経て、最近の活動をフェッチするためのsetIntervalを使用しているとします。それはOKですが、それを行うための良い方法は、(あなたのサーバが貴重な資源を消費し、ユーザーのポーリングを回避)のWebSocketを使用している:

WebSocketをすると、ユーザーのブラウザ間での対話型通信セッションを開くことを可能にする先進的な技術であり、およびサーバー。

(MDN Webdocs - https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API

それはあなたの目的のために非常に軽量であり、私はそれが本当のバックエンドのイベントに基づいてユーザーのビューを更新するための最良の選択であると信じています。

は、Mozillaの参照でより良い見て、同様にこれらの他の参照をチェック:

関連する問題