收藏 分享(赏)

如何启用输出缓存-帮酷.doc

上传人:HR专家 文档编号:5969882 上传时间:2019-03-22 格式:DOC 页数:9 大小:24.80KB
下载 相关 举报
如何启用输出缓存-帮酷.doc_第1页
第1页 / 共9页
如何启用输出缓存-帮酷.doc_第2页
第2页 / 共9页
如何启用输出缓存-帮酷.doc_第3页
第3页 / 共9页
如何启用输出缓存-帮酷.doc_第4页
第4页 / 共9页
如何启用输出缓存-帮酷.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、本文将讨论如何使用technology缓存技术improve 提高out 应用程序的性能。 在这里我使用 Visual Studio 2012. 正如你所知道的,在MVC中它是关于操作的,所以每次我们都根据用户请求调用一些操作。 例如每当用户请求视图时,我们将调用控制器并获取结果并将数据绑定到视图。 是那么如果用户在 2分钟内请求相同的视图 50次? 在正常情况下,这将不会发生,但是很少有一些情况可以能与我所说的相似。 在这种情况下,建议使用高速缓存最有用的东西。 这将确保不需要在时间段内发生的操作。 因此,如果用户已经在时间段内访问了同一视图, 则当用户再次调用视图时,控制器操作不会再次激发

2、。 它将返回已经呈现的相同视图。 听起来很酷是的,我们会看到怎样才能达到这个目的。 ! 我希望你会喜欢这个。背景我正在做一个MVC项目。 你们都知道,在性能方面,我们的客户永远不会满意。 所以我们用了所有的方法来提高性能。 我们使用的一个东西是缓存。 所以我想写一篇与之相关的文章,并与大家分享。什么是缓存?如上所述,你可以从性能改进技术中获得最大的收益。 它有助于避免仅仅使用输出缓存( 在 ASP.NET 5中,它是 ResponseCache ) 来避免不必要或者频繁发生的操作。 最近呈现的视图不会再次激发控制器,如果它在时间限制期间,它将显示已经呈现的。 它将缓存由控制器操作返回的内容。假

3、设你有一个控制器,它将从数据库中返回你的借方/贷方交易。 如果数据库在一周内通常更新一次,该怎么办? 通常,当用户点击控制器时,它就会命中数据 库并获取数据? 但是在这个场景中,不需要再次打击数据库,因 为数据一周就会相同。 因此我们可以设置输出缓存,以便在时间间隔内控制器内容将处于缓存中,以便视图能够呈现缓存的数据。如何启用输出缓存?我们将首先在 Visual Studio 中创建一个简单的应用程序。在MVC中缓存 在MVC中缓存 现在我们将在MVC应用程序中创建一个控件。在MVC中缓存 所以我们的控制器已经经准备好了,现在我们需要创建简单视图,然后在控制器中更改索引操作:public Ac

4、tionResult Index()return Content(DateTime.Now.ToString(“T“);所以我们从控制器返回当前时间。 不是现在刷新你的视图,让我们在 5分钟内重新输入 2次,什么输出是?在MVC中缓存 在MVC中缓存 你注意到了在五分钟内我们已经按了两次控制器? 下面是输出缓存的神奇之处。 请按如下所示更改控制器代码:OutputCache(Duration = 300, VaryByParam = “none“)public ActionResult Index()return Content(DateTime.Now.ToString(“T“);在这里,我

5、们将高速缓存持续时间设置为 5分钟( 5*60秒)如果你运行和执行相同的练习,你可以以注意到控制器只在 5分钟内被命中一次。 不错啊?尽管它很酷,但也有一些限制。 内存变低,缓存数据将被释放, 这样就不会有缓存数据。在这里,我们只是使用了一个简单的视图,它从控制器返回时间。 如果控制器有一些数据库操作,对于每个用户来说,我们需要对数据库进行正确的访问? 简单地说,我们可以以说缓存帮助减少我们的web服务器和数据库所执行的工作量。内容被缓存。 哪里?现在,我们将看到可以保存缓存数据的所有位置。 通常,内容 缓存在三个位置。 网络服务器 代理服务器 网络浏览器可以以通过使用位置属性设置存储缓存数据

6、的位置,无论它是在服务器。客户端还是服务器。 默认情况下,位置将为any 。在MVC中缓存 我们在服务器中不应该缓存的情况很少。 假设有一个控制器将返回用户登录到我们应用程序的国家/地区。 现在我来自印度语 ,所以当我登录到应用程序时,它将显示国家 NAME 为印度。 正确。现在已经将这些数据缓存在服务器中。 那么,如果爱尔兰用户登录到应用程序中会发生什么情况? 如果我们把印度展示为他/她的国家会好? 这是没有意 义的,对吧?OutputCache(Duration = 10, VaryByParam = “none“)public ActionResult Index()User u = n

7、ew User();return Content(u.getUserCountry();简而言之,我们可以说,我们不应该在服务器中缓存任何个性化数据。那么这个问题的解决方法是? 简单,在客户端缓存数据。 为此,我们可以按如下方式更改控制器:OutputCache(Duration = 10, VaryByParam = “none“, Location=OutputCacheLocation.Client, NoStore=true)public ActionResult Index()User u = new User();return Content(u.getUserCountry();

8、若要使用 OutputCacheLocation,必 须使用 System.Web.UI; 包含命名空间你注意到了我们已经设置了 NoStore=true? 这是为了在服务器上不保存这些数据的任何副本的代理服务器。使用VaryByParam 属性现在我们将讨论另一个场景,它解释了 VaryByParam 属性的用法。 假设一个叫GetEmployee的行动将返回我们公司的所有 Employees 。 现在,如果我们点击任何员工链接,另一个 视图( GetEmployeeDetails ) 将显示所有员工( 。如 帐户详细信息, 请留下详细信息,个人信息) 的详细信息。 所以如果我们保存 Get

9、EmployeeDetails的缓存视图,将会发生什么? 对于所有员工,它将显示相同的GetEmployeeDetails 视图,对吧?因此,我们将按如下所示更改控制器操作:OutputCache(Duration = 10, VaryByParam = “none“)public ActionResult GetEmployee()Employee e = new Employee();return Content(e.getEmployees();OutputCache(Duration = 10, VaryByParam = “empID“)public ActionResult Get

10、EmployeeDetail(int empID)Employee e = new Employee();return Content(e.getEmployeeDetails(empID);上述实现将确保为不同用户生成不同的员工详细信息视图。 声音冷却?缓存配置文件还有另一种实现缓存的方法,即缓存配置文件,它除了在 web 。config 文件中创建标记并应用到不同的控制器之外。 这样,你就可以为不同的控件拥有相同的缓存配置文件。 而且,由于它只是 文件中的 标记 ,所以很容易在 缓 存概要文件中 进 行任何更改。 缓存配置文件中的任何更改都将得到很容易地应用。 我发现这是最有效的缓存方式。

11、 我们可以按如下方式执行高速缓存配置文件:上述缓存配置文件可以用于任何管理控制操作,该操作将缓存一天。 你可以简单地使用这里配置文件,如下所示:OutputCache(CacheProfile=“Admin“)这就是缓存。 在 ASP.NET 5中,我将使用另一个post来解释缓存,它很快就会出 现。 感谢你的阅读。快乐编码 !结束语我是否错过了你可能认为需要的东西? 你是否尝试缓存? 你想过这样做? 你能帮我找到这篇文章? 我希望你喜欢这篇文章。 请分享你宝贵的建议和反馈。你了你觉得?博客不是没有评论的博客,但要尽量保持话题不变。 如果你有一个问题与这篇文章无关,你最好把它发布到 C# 角,代码项目,堆栈溢出,ASP.NET 论坛。 推荐或者发邮件给我一个你的问题的链接,我绝对会试着帮助你。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报