我在基于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秒而且情况会变得更糟,但数据本身并没有#39;确实需要经常更新。
有没有办法在第一次创建VisualList对象之后将其存储在某处,如果已经过了不到24小时,则将该对象返回到视图,如果超过24小时,则重建它并传递新副本
此外,在一个完美的世界中,报告只会每24小时自动构建一次,因此用户永远不必等待30秒以上才能加载。
答案 0 :(得分:4)
答案 1 :(得分:0)
除了缓存并尝试优化业务/数据库逻辑。懒惰&lt;怎么样? T>而不是List&lt; T&gt;
查看这些链接:
https://sankarsan.wordpress.com/2009/10/04/laziness-in-c-4-0-lazyt/