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多秒才能加载。

Storing object data in ASP.NET MVC

对您来说,最简单的选择是缓存它,并给它24小时的使用寿命,请检查此项。

如果每个请求的数据都相同,那么可以使用mvc中的[OutputCache],它将缓存View输出,而不是数据。检查一下。

除了缓存和尝试优化业务/db逻辑。Lazy<T>而不是List<T>

查看这些链接:

我什么时候应该使用Lazy<T>?

https://sankarsan.wordpress.com/2009/10/04/laziness-in-c-4-0-lazyt/