【发布时间】:2019-12-30 04:53:00
【问题描述】:
所以基本上情况就是这样:
我有一个无限循环,它调用一个 AJAX 请求 ( POST ),它每 5 秒提取一次最新的数据!它的作用是调用 Controller 以 JSON 格式获取其数据,如下所示:
public string Reload(int id)
{
Room = db.Rooms.Find(id);
return new JavaScriptSerializer().Serialize(Room);
}
问题是,这条线:
Room = db.Rooms.Find(id);
成本很高,每 5 秒它会一遍又一遍地执行相同的查询...
有没有办法让控制器“记住”用户,这样他就不必一次又一次地执行相同的查询?
注意:我正在使用:ASP.NET MVC Web Application (.NET Framework) 4.6.1 with Identity。
【问题讨论】:
-
请解释行
so he won't have to do the same query again and again? -
@JamshaidKamran 即使在请求完成后也要保持变量 Room 保持活动状态,因此下次用户激活 Reload 方法时,他可以在 O(1) 中获取 Room 变量而不是获取它来自数据库,
-
首先,Marvell 有很多要回答的问题,
infinity loop我每次听到都会畏缩。其次,使用可以回调客户的协议或技术/框架。像信号员 -
costs a lot, every 5 seconds it does the same query over and over again...我建议阅读MemoryCache。 -
如果你想“记住”用户以便保存查找,那么不断循环提供新数据的意义何在?
标签: c# asp.net .net ajax asp.net-mvc