手机版

ASP.NET的操作数据2.0五十六:使用对象数据源缓存数据

时间:2021-10-30 来源:互联网 编辑:宝哥软件园 浏览:

介绍

就计算机科学而言,缓存是将所需数据或信息的备份放在某个地方以便快速访问的过程。以数据驱动程序为例,程序的大部分时间都浪费在了数据查询上。为了提高该程序的性能,通常的做法是将查询结果存储在程序的内存中。

ASP。NET 2.0提供了多种缓存方法。网页和用户控件可以通过输出缓存进行缓存。我们还可以通过ObjectDataSource和SqlDataSource控件在控件级别缓存数据。同时,ASP。NET的数据缓存为页面开发人员通过编程缓存对象提供了丰富的缓存API。在本文和接下来的三篇文章中,我们将研究ObjectDataSource和数据缓存的缓存属性。我们还将探讨如何在启动时缓存应用程序范围的数据,并通过使用SQL缓存依赖项来刷新缓存的数据。

的主要缓存点。

因为缓存通过将数据副本放在便于快速访问的位置来提高程序的整体性能。因为它只是一个副本,所以当源数据发生变化时,该副本不能同步更新。因此,页面开发人员应该建立一个标准来将其从内存中清除,可以使用以下两种方法之一:

基于时间的标准:添加到内存中的项目只能在内存中停留固定或滑动的一段时间。例如,开发人员可以设置一个时间段,如60秒。当条目被添加到内存中时,无论访问频率有多高,它都会在60秒后被清除。如果是滑动处理,一旦最后一次访问后没有再次访问的时间超过60秒,就会被清除掉。

基于依赖关系的标准:当一个条目被添加到内存中时,它被分配一个依赖关系,当相应的依赖关系改变时,该条目被清除。下属机构可以是文件;另一个缓存条目;或者简单的组合);两者之中;当然,它也可以是SQL缓存依赖项,可以在源数据发生变化时向内存中添加条目并清除条目。我们将在下面的文章《使用SQL缓存依赖项SqlCacheDependency》中详细研究它。

无论标准如何,我们都可以在物品被清理之前进入。如果内存达到极限,它将在添加新条目之前清除现有条目。因此,在处理缓存数据时,充分考虑缓存数据被清除的可能性是非常重要的。在下一篇文章《在分层架构中缓存数据》中,我们将研究哪种模式用于从内存中访问数据。

缓存是提高程序性能的一种经济的方法,正如史蒂文史密斯在他的文章《ASP.NET Caching: Techniques and Best Practices:》中所说:“缓存是获得‘优秀’性能的好方法,它不需要太多的时间和分析。内存也很便宜,你需要30秒才能获得你期望的性能。优化代码和数据库可能需要几天甚至几周的时间……”

虽然缓存可以明显提高系统性能,但并不适合所有应用,比如一些经常更新数据的实时程序就不适合。但是对于大多数程序来说,它仍然适用。有关ASP.NET 2.0中缓存的更多背景信息,请参考ASP.NET 2.0快速入门教程系列的性能缓存部分。

步骤1:创建缓存页面。

在开始之前,让我们花些时间添加包括本教程在内的最后四个教程中所需的页面。我们首先在项目中创建新的名为“缓存”的文件夹,然后将以下页面添加到目录中,这些页面被配置为使用Site.master主板页面。

default . aspxobjectdata source . aspxfromthearchitecture . aspxatapapplicationstartup . aspxsqlcachedependencies . aspx

//files.jb51.net/file_images/article/201605/2016051710390743.png

图1:创建一个相关的ASP.NET页面。

与其他文件夹一样,缓存文件夹中的Default.aspx页面显示了这一系列文章。请记住,用户控件SectionLevelUtoriallisting。ascx提供了这个功能,并在设计模式下将其拖动到页面上。

//files.jb51.net/file_images/article/201605/2016051710390744.png

图2:为Default.aspx页面添加用户控件SectionLevelUtoriallisting.ascx。

最后,将这些页面添加到Web.sitemap文件中,尤其是在“使用二进制数据”sitemapnode :

站点地图节点标题='缓存

版权声明:ASP.NET的操作数据2.0五十六:使用对象数据源缓存数据是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。