Storing object data in ASP.NET MVC
本文关键字:NET MVC ASP in object data Storing | 更新日期: 2024-10-22 17:00:07
我在ASP中有一个非常简单的对象。NET MVC的网站。
型号:
public class Visualisation
{
public string name { get; set; }
public string[] relationships { get; set; }
}
它用于建立我的网站中保存的数据的名称和一系列关系,然后通过D3JS图形显示。
控制器:
public ActionResult Visualisations()
{
List<Visualisation> VisualList = new List<Visualisation>();
/*
A whole lot of database hits, foreach loops, heaps of CPU and db time
*/
return View(VisualList);
}
问题是,这个页面的构建(数百名用户拥有数千条记录,其中数十条数据正在为这份报告进行整理)需要长达30秒的时间,而且只会变得更糟,但数据本身并不需要经常更新。
有没有一种方法可以在第一次创建VisualList对象后将其存储在某个地方,如果时间不到24小时,则将该对象返回到视图中,如果时间超过24小时,请重新生成并传递新副本。
此外,在一个完美的世界里,报告将每24小时自动生成一次,因此用户永远不必等待30多秒才能加载。
对您来说,最简单的选择是缓存它,并给它24小时的使用寿命,请检查此项。
如果每个请求的数据都相同,那么可以使用mvc中的[OutputCache]
,它将缓存View输出,而不是数据。检查一下。
除了缓存和尝试优化业务/db逻辑。Lazy<T>而不是List<T>
查看这些链接:
我什么时候应该使用Lazy<T>?
https://sankarsan.wordpress.com/2009/10/04/laziness-in-c-4-0-lazyt/