.Net Core 3.x MVC IResourceFilter 缓存

1、 Action 缓存

      IResourceFilter 不同环境都可以做缓存,只是效果不一样

基于IResourceFilter完成了缓存,避免了控制器实例化和Action执行,但是视图重新执行了(缓存了控制器和Action)

例子:

先实现 IResourceFilter ,新建类 CustomCacheResourceFilterAttribute.cs

修改 FilterController.cs ,添加新 Action  InfoCache 使用刚才的特性 CustomCacheResourceFilter

添加视图

生成编译 -> 浏览 /filter/Infocache

然后按F5刷新, 后端时间是没有变化,前端(view)时间被重新执行了

2、视图缓存( 浏览器缓存 )

怎么样可以不执行视图,或者直接重用视图的结果,直接重用HTML

ResponseCache:在请求响应式,添加了一个responseheader,来指导浏览器缓存结果

修改 FilterController.cs ,Duration 缓存时间

生成编译 -> 浏览 /filter/Infocache 打开两个页面 看效果 (注意:这种不能按F5刷新,只能新页面去测试)

自己可以调试去观察有没有进后台,第二个页面访问时是不会进后台的

3、中间件 缓存

修改 Startup.cs ,注册 ResponseCaching

修改 FilterController.cs

生成编译 -> 浏览 /filter/Infocache  用两个不一样的浏览器来看效果,这里我用谷歌和360测试

跨浏览器缓存了



下一章《.Net Core 3.x MVC Autofac 切入Action 》
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。