ASP.NET

.Net Core 3.x MVC IResourceFilte

2020-10-23  本文已影响0人  单程车票_SJ

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 》
上一篇 下一篇

猜你喜欢

热点阅读