繁体   English   中英

在ASP.NET MVC中存储对象数据

[英]Storing object data in ASP.NET MVC

我在基于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输出,而不是数据。 检查一下

除了高速缓存,并尝试优化业务/数据库逻辑。 Lazy <T>而不是List <T>

查看这些链接:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM