在给定几个输入参数的情况下,我有一个动态呈现图形的控制器操作。由于图形渲染时会稍微显眼,因此我使用输出缓存来避免重新渲染。
有几十个非常常用的输入参数组合。我认为预热缓存是个好主意,这样第一个使用这些组合的访问者就不会遇到延迟。
为此,我直接从 Application_Start() 调用控制器,如下所示:
UtilController uc = new UtilController();
uc.GenerateImage(p1, p2, p3);
通过设置断点,我看到调用了控制器动作并生成了图像。但是,浏览器第一次(也是唯一一次)请求该图像时,它会再次生成。出于此测试的目的,浏览器被配置为不缓存任何内容,我仔细比较了用于调用控制器操作的参数。
直接调用控制器动作时是否不调用输出缓存?有没有更好的预热缓存的方法(希望是一个独立于网络项目的方法)?