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 》
网友评论