在Spring中创建活动源的正确方法

时间:2017-11-12 20:50:05

标签: java spring spring-boot

在我的页面的一部分中,我需要有一个ActivityFeed,它显示来自用户的最新输入数据。

所以有用户模型..以及调查模型。

用户提供一些输入,然后它们显示在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调用,我调用Endpoint,并提取信息。

这是创建活动Feed的正确方法吗? 或者是否有一种方法,在每次提交的价值之后,活动源都会更新?

我也在使用Spring-Boot和Thymeleaf。

感谢

1 个答案:

答案 0 :(得分:0)

我想您正在使用setInterval通过Ajax获取最近的活动。没关系,但更好的方法是使用websocket(避免用户轮询你的服务器消耗宝贵的资源):

  

WebSockets是一项先进技术,可以在用户的​​浏览器和服务器之间打开交互式通信会话。

     

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

它非常轻量级,我认为它是根据真实后端事件更新用户视图的最佳选择。

更好地了解Mozilla的参考资料,并查看其他参考资料: