科创学院Web应用开发课件 第十一章 大案例优化

上传人:沈*** 文档编号:244572238 上传时间:2024-10-05 格式:PPT 页数:57 大小:607KB
返回 下载 相关 举报
科创学院Web应用开发课件 第十一章 大案例优化_第1页
第1页 / 共57页
科创学院Web应用开发课件 第十一章 大案例优化_第2页
第2页 / 共57页
科创学院Web应用开发课件 第十一章 大案例优化_第3页
第3页 / 共57页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ASP.NET,网站开发技术,ASP.NET,网站开发技术,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ASP.NET,网站开发技术,C#程序设计基础教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C#程序设计基础教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C#程序设计基础教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ASP.NET,网站开发技术,C#程序设计基础教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C#程序设计基础教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ASP.NET,网站开发技术,C#程序设计基础教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ASP.NET,网站开发技术,C#程序设计基础教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ASP.NET,网站开发技术,C#程序设计基础教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ASP.NET,网站开发技术,C#程序设计基础教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,11.1,影响网站性能的因素,11,.2,使用,Ajax,控件部分刷新,11.3,网页输出缓存,11.4,数据缓存,第十一章 大案例优化,11.1影响网站性能的因素,通过前10章子学习情境的学习,我们完成了网上书店系统大案例的设计,本章将在此基础上对该大案例进行部分优化,也就是通过优化来进一步提高网站的性能。网站性能的优劣是由多种因素造成的,有些不是由设计者决定的,如服务器的性能、与网站关联的数据库的性能、支持网站运行的载体的性能等,但是,虽然如此,我们还是应该力求在设计层面上把影响网站性能的主要因素找出来,然后加以解决,至于非设计层面上的问题,可以采取其它相应的方式来解决。在设计层面上影响网站性能的因素主要有:,第十一章 大案例优化,11.1影响网站性能的因素,网站的响应速度:一个不能及时响应的网站绝对不是性能较好的网站,谁也不愿意等上很长时间来打开的你的网站,这个因素是需要设计者重点考虑的因素。,界面设计:界面设计影响网站的美感及网页响应速度,例如,网页的整体框架布局方式、网页图片的格式及大小是否合适等方面,解决方法是聘用优秀的美工人员,如果网站需求方舍得资金支持的话,这个问题不难解决。,网站安全:网站安全是影响网络性能的又一个重要因素,不安全的网站会带来严重的后果,不安全网站可能会使你的服务器瘫痪,有可能造成巨大的损失。,第十一章 大案例优化,11.1 影响网站性能的因素,本章主要讲解影响网站性能的主要因素网站的响应速度因素,要改善网站的响应速度主要由以下几种方法:,使用AJAX控件部分刷新,网页输出缓存,数据缓存,第十一章 大案例优化,11.2使用AJAX控件部分刷新,用Ajax技术,可以创建高度交互的Web应用,增加用户的页面浏览体验。在VS2008中,已经对Ajax框架进行了封装,在不需要重新安装任何组件的情况下,可直接进行ASP.NET 的Ajax开发。,为了使用户在浏览页面时不至于每次回发都看到整个页面重新加载,我们可以使用Ajax实现部分页呈现,即让用户无需因回发而刷新整个页面,而仅仅需更新网页上各个已更改的区域,从而减少了整页刷新的次数,这使得用户能够更加顺畅地与网页进行交互。ASP.NET使您能够将部分页呈现添加到新的或现有的 ASP.NET 网页,而无需编写客户端脚本。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,那么如何使用AJAX技术实现网页的局部刷新呢?因为在VS2008中已经对Ajax框架进行了封装,所以我们可以使用VS2008工具箱中的Ajax控件将Ajax功能添加到我们的ASP.NET网页中,下面我们首先来认识一下这些控件:,第十一章 大案例优化,11.2使用AJAX控件部分刷新,1、ScriptManager 控件,该控件管理支持 AJAX 的 ASP.NET 页的客户端脚本。默认情况下,ScriptManager 控件会向页面注册 Microsoft AJAX Library 的脚本。这将使客户端脚本能够使用 ASP.NET AJAX 类型系统扩展,并支持部分页呈现和 Web 服务调用这样的功能。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,1、ScriptManager 控件,ScriptManager 控件担当着对该页面中所有的AJAX控件进行管理协调的重任,所以任何一个使用ASP.NET AJAX控件的页面中,都必须包含一个ScriptManager 控件。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,2、 UpdatePanel 控件,使用 UpdatePanel 控件,可以刷新页的选定部分,而不是因回发而刷新整个页面。这称为执行“部分页更新”。包含一个 ScriptManager 控件和一个或多个 UpdatePanel 控件的 ASP.NET 网页可自动参与部分页更新,而不需要自定义客户端脚本。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,2、 UpdatePanel 控件,UpdatePanel 控件在网页中需要 ScriptManager 控件。默认情况下,将启用部分页更新,因为 ScriptManager 控件的 EnablePartialRendering 属性默认值为 true。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,3 Timer 控件,ASP.NET AJAX Timer 控件按定义的时间间隔执行回发。如果将 Timer 控件用于 UpdatePanel 控件,则可以按定义的时间间隔启用部分页更新。也可以使用 Timer 控件来发送整个页面。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,3 、 Timer 控件,当要执行以下操作时,可使用 Timer 控件:,定期更新一个或多个 UpdatePanel 控件的内容,而无需刷新整个网页。,每当 Timer 控件导致回发时运行服务器上的代码。,按定义的时间间隔将整个网页同步发布到 Web 服务器上。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,4 、 UpdateProgress 控件,UpdateProgress 控件提供有关 UpdatePanel 控件中的部分页更新的状态信息。可以自定义 UpdateProgress 控件的默认内容和布局。若要在部分页更新的速度非常快时阻止闪烁,可以在显示 UpdateProgress 控件之前指定延迟。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,4 、 UpdateProgress 控件,当网页包含一个或多个用于部分页呈现的 UpdatePanel 控件时,UpdateProgress 控件可帮助您设计更为直观的 UI。如果部分页更新速度较慢,则可以使用 UpdateProgress 控件来提供有关更新状态的可视反馈。可以在页上放置多个 UpdateProgress 控件,其中每个控件都与不同的 UpdatePanel 控件相关联。也可以使用一个 UpdateProgress 控件,并将其与页上的所有 UpdatePanel控件关联。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,介绍完Ajax控件后,下面我们使用AJAX技术来对我们的购物车管理页面进行优化。,在我们的网上书店系统的“Members”文件夹中包含一个名为“CartInfo.aspx”页面,该页面主要功能是提供会员浏览自己的购物车信息,并且还提供了生成订单、用户信息自动填写功能,默认情况下生成订单的部分是隐藏的,如图 111所示。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,第十一章 大案例优化,图 111 购物车信息,11.2使用AJAX控件部分刷新,当用户单击图 111页面上的“下订单”按钮时,在该页面下面出现订单信息。如图 112所示,第十一章 大案例优化,图 112 显示订单信息,11.2使用AJAX控件部分刷新,这时当我们再次单击图 112中的“下订单”按钮时,填写订单信息部分又重新隐藏起来,当我们反复单击“下订单”按钮时,发现整个“CartInfo.aspx”页面每次都刷新闪烁,用户体验不好。下面我们使用AJAX技术实现在每次单击“下订单”按钮时,只有填写订单信息部分刷新,整个页面不刷新。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,例 111 使用AJAX优化“CartInfo.aspx”页面,(1)切换到“CartInfo.aspx”页面的源视图状态,把光标定位到“”标记的下一行;,(2)依次从工具箱中的“AJAX Extensions”选项卡下拖入一个ScriptManager 控件和一个UpdatePanel 控件,在“”和“”两个标记之间手动添加一组“ ”标记(需要局部刷新部分的代码要放在改组标记代码之间),如图 113所示;,第十一章 大案例优化,11.2使用AJAX控件部分刷新,第十一章 大案例优化,图 113 添加Ajax控件,11.2使用AJAX控件部分刷新,例 111 使用AJAX优化“CartInfo.aspx”页面,(3)把图 113中“”标记下面的折叠起来的“”部分(为节省篇幅,该部分折叠标记代码即为显示填写订单信息部分的代码)剪贴到“”和“ ”标记之间,如图 114所示;,第十一章 大案例优化,11.2使用AJAX控件部分刷新,第十一章 大案例优化,图 114 更改“填写订单信息”标记代码位置,11.2使用AJAX控件部分刷新,经过上述三步后,重新运行该网页,当单击“下订单”按钮时,发现只有填写订单信息部分的局部页面刷新,而整个页面不刷新,增强了用户体验。,除了上述使用AJAX技术实现网页局部刷新外,在实际应用中,有时会需要页面在某个时刻进行自动更新,而不需要人为干预,这就需要用到ASP.NET AJAX中的Timer控件(本教材大案例的需求没有此功能的要求)。,设置Timer控件的Interval属性,可以控制刷新的时间间隔,单位是毫秒。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,例 112 使用Timer控件自动局部更新,(,1)从工具箱中拖一个UpdatePanel 控件和一个ScriptManager 控件到Default.aspx页面上, UpdatePanel 控件中包含一个 Timer 控件,设置其Interval属性为1000,要求在 UpdatePanel 控件里面和外面分别输出页面的加载时间。,根据题目要求,参照课本给出的部分网页源视图代码布置网页源视图。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,该网页运行效果如图 115所示。,第十一章 大案例优化,图 115 定时刷新,11.2使用AJAX控件部分刷新,从图 115浏览的效果可以看到,网页上面的时间(背景为灰色的部分)每隔1000毫秒就会被刷新一次,而下面显示的时间则始终是页面加载时的时间,并不会被刷新。这是由于上面显示的时间放在了UpdatePanel 控件内,并设置了Timer的Interval为1000毫秒,所以会定时被刷新,而下面显示的时间放在了UpdatePanel 控件外,所以不会被定时刷新。,若要将 AJAX 功能添加到 ASP.NET 网页,请标识网页上要更新的各个部分。然后,将这些部分的内容放入 UpdatePanel 控件。UpdatePanel 控件的内容可以是 HTML 或其他 ASP.NET 控件。向网页中添加 UpdatePanel 控件的方式与添加任何其他控件相同。例如,可以将该控件从“工具箱”任务窗格拖到网页上,也可以通过在相应网页的“代码”视图中添加该控件的代码来进行添加。,第十一章 大案例优化,11.2使用AJAX控件部分刷新,例如,可以将该控件从“工具箱”任务窗格拖到网页上,也可以通过在相应网页的“代码”视图中添加该控件的代码来进行添加。,若要支持部分页呈现,必须将 ScriptManager 控件放到相应的网页上。ScriptManager 控件会跟踪该网页的所有更新面板及其触发器。它会协调服务器上的部分页呈现行为,并确定因异步回发而呈现的网页的各个部分。,第十一章 大案例优化,11.3,网页输出缓存,通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能。例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频繁访问的报表返回,避免在用户每次请求数据时重新创建报表可以提高效率。同样,如果应用程序包含一个处理复杂数据但不需要经常更新的页,则在每次请求时服务器都重新创建该页会使工作效率低下。,第十一章 大案例优化,11.3,网页输出缓存,在这些情况下,为了帮助您提高应用程序的性能,ASP.NET 使用两种基本的缓存机制来提供缓存功能。第一种机制是页输出缓存,它保存页处理输出,并在用户再次请求该页时,重用所保存的输出,而不是再次处理该页。第二种机制是应用程序缓存,它允许您缓存所生成的数据,如DataSet或自定义报表业务对象。,性能是任何 Web 应用程序的关键方面。必须减少 Web 服务器的处理量,以便使单个请求结果响应速度更快、服务器有能力处理更多并发请求并减少中间和后端数据系统的负荷。使用输出缓存以减少服务器的工作负荷,能够实现更佳的 ASP.NET 性能。输出缓存是一种优化方案,可以缩短 Web 服务器响应的时间。,第十一章 大案例优化,11.3,网页输出缓存,通常,浏览器请求 ASP.NET 页时,ASP.NET 将创建该页的实例,运行该页中的任何代码,运行数据库查询(如果有),动态汇编此页,然后将产生的输出发送到浏览器。输出缓存使 ASP.NET 能够发送该页的预处理副本,而不用为每个请求完成此过程。这个区别降低了 Web 服务器的处理量,从而提高了性能并获得更大的可伸缩性。,第十一章 大案例优化,11.3,网页输出缓存,1、设置页级别缓存,打开VS2008开发工具,新建一个网站,命名为“WebSiteOutputCacheDemo”,切换到Default.aspx页的“设计”视图,从工具箱中将Label控件拖动到页面上,保留默认名称 Label1,该Label控件用以显示此页面的创建时间,然后将此页配置为进行缓存。通过显示页的创建时间,可以看到是否从缓存完成了页请求。按F7切换到代码编辑器,添加如下代码:,第十一章 大案例优化,11.3,网页输出缓存,1、设置页级别缓存,protected void Page_Load(Object sender, EventArgs e), Label1.Text = DateTime.Now.ToString(); ,按 Ctrl+F5 运行该页,此页面在浏览器中出现时,将看到当前日期和时间。按浏览器的刷新按钮,可注意到时间戳每次都会改变。,第十一章 大案例优化,11.3,网页输出缓存,1、设置页级别缓存,关闭浏览器,切换到Default.aspx页的“源”视图,将下面的 OutputCache 指令添加至该页的顶部:,此指令配置页面以进行缓存,,Duration,属性指定页将在缓存中保留 15 秒。,按 Ctrl+F5 再次运行该页。多次刷新页面。请注意,无论您刷新了多少次浏览器,时间显示仅每 15 秒更新一次。这是因为建立页面缓存后,将不再执行页面的生命周期,也就不再执行Page_Load事件委托函数,直接从缓存中得到响应,直至持续时间过期为止,过期后,页代码再次执行。,第十一章 大案例优化,11.3,网页输出缓存,2、设置应用程序级别的页面缓存,在前面的例子中,配置了单个页面的缓存。在某些情况下,可能希望为网站中的所有页配置缓存。可能还希望建立不同的缓存规则(配置文件),并将缓存配置文件应用到各组单独页面。设置应用程序级别缓存使您能够从单个配置文件更改缓存行为,而无需编辑各个页面的 OutputCache指令。在下面的过程中,将设置一个简单的缓存配置文件,并将其用于刚刚使用的页面。,第十一章 大案例优化,11.3,网页输出缓存,2、设置应用程序级别的页面缓存,具体步骤如下:,如果已经有一个 Web.config 文件,请转到步骤 4。,在解决方案资源管理器中,右击网站的名称,然后单击“添加新项”。,在“添加项”对话框中,单击“Web 配置文件”,然后单击“添加”。,请确定使用的名称为 Web.config。将以下 XML 添加为 system.web 元素的子项:,第十一章 大案例优化,11.3,网页输出缓存,2、设置应用程序级别的页面缓存,具体步骤如下:,如果已经有一个 Web.config 文件,请转到步骤 4。,在解决方案资源管理器中,右击网站的名称,然后单击“添加新项”。,在“添加项”对话框中,单击“Web 配置文件”,然后单击“添加”。,请确定使用的名称为 Web.config。将以下 XML 添加为 system.web 元素的子项:,第十一章 大案例优化,11.3,网页输出缓存,2、设置应用程序级别的页面缓存,第十一章 大案例优化,11.3,网页输出缓存,2、设置应用程序级别的页面缓存,保存文件,然后将其关闭。打开或切换到刚才使用的Default.aspx页,然后切换到“源”视图。,将 OutputCache指令更改为以下内容:,按 Ctrl+F5 运行该页。多次刷新页面。这次,日期将在缓存配置文件中指定的持续时间(为 60 秒)内保持不变。,第十一章 大案例优化,11.3,网页输出缓存,3、使用参数进行缓存,OutputCache 指令要求您设置 VaryByParam 属性,在前面两种设置方式下,此属性设置为“none”。VaryByParam 属性使您能够配置缓存,以便 ASP.NET 根据参数(如查询字符串、窗体发布值、请求标头等)存储不同版本的页面。,例如,可以在显示所选城市的天气情况的页面中使用缓存参数,天气数据仅每三小时刷新一次。在此情况下,您希望为每个城市缓存页面的单独版本。可以将缓存参数设置为根据查询字符串参数的不同而改变来执行此操作。,第十一章 大案例优化,11.3,网页输出缓存,3、使用参数进行缓存,在下面的过程中,将更改添加到页的 Label 控件,以便用彩色背景显示时间。可以使用 TextBox 控件并输入颜色名称来更改颜色。,提交此页时,键入的颜色作为传递数据提交,且 Label 控件后的颜色改变。请求新颜色时(页包括新的传递数据时),将重新生成此页并更新时间戳。不过,对相同颜色的后续请求将导致返回已缓存的页(直至超过持续间隔时间为止)。,第十一章 大案例优化,11.3,网页输出缓存,3、使用参数进行缓存,下面看一下具体步骤:,打开或切换到使用的Default.aspx页。,切换到“设计”视图。,从工具箱的“标准”组中,将 TextBox 控件拖动到页面上,并将其 ID 设置为,“Color”,。,将 Button 控件拖动到页面上,保留默认值,Button1,。,将 Button 控件的 Text 属性设置为“Change Color”。双击 Button 控件以创建 Click 事件处理程序。在此方法中添加以下代码:,第十一章 大案例优化,11.3,网页输出缓存,3、使用参数进行缓存,protected void Button1_Click(Object sender, System.EventArgs e), Label1.BackColor = System.Drawing.Color.FromName(Server.HtmlEncode(Color.Text); ,第十一章 大案例优化,11.3,网页输出缓存,3、使用参数进行缓存,将 form 元素的 defaultbutton 属性设置为“Button1”。这会导致按下 Enter 键时将引发按钮的 Click 事件处理程序。,用下面的版本替换 OutputCache 指令:,按 Ctrl+F5 运行该页。,第十一章 大案例优化,11.3,网页输出缓存,3、使用参数进行缓存,在文本框中键入颜色名称,如“red”或“blue”,然后单击“更改颜色”。ASP.NET 缓存使用您指定的颜色的页面版本。,多次刷新页面。如果没有键入新的颜色名称,则日期和时间将至少有一分钟不变(在 OutputCache 指令的 Duration 属性中指定)输入新颜色,如“green”或“gold”,然后提交页。这次将看到时间和新颜色一起更新。,第十一章 大案例优化,11.4,数据缓存,ASP.NET还提供了另一种灵活的缓存类型:数据缓存。缓存的真正灵活性和强大功能是通过Cache对象提供的。使用Cache对象,您可以存储任何可序列化的数据对象,基于一个或多个依赖项的组合来控制缓存条目到期的方式(注:要小心使用Cache,因为Cache是占用服务器内存,如果使用不当,也许会降低性能)。这些依赖项可以包括自从某对象被缓存后经过的时间、自从某对象上次被访问后经过的时间、对文件或文件夹的更改以及对其他缓存对象的更改,在略作处理后还可以包括对数据库中特定表的更改。,第十一章 大案例优化,11.4,数据缓存,你可以将一些耗费时间的条目加入到一个对象缓存集合中,以键值的方式存储。通过Page类的Cache属性可以访问到Cache集合。当用户请求数据时,如果数据已经被缓存,则用户所提取的数据直接从服务端返回,而不是从数据库等底层数据库提取。这对性能的提升很有帮助。,第十一章 大案例优化,11.4,数据缓存,1、无过期Cache缓存,在Cache中存储数据的最简单的方法就是使用一个键为其赋值,其效果与使用Application保持状态类似:,Cachekey = value;,这种做法将在缓存中存储项,同时不带任何依赖项,因此它不会到期,除非缓存引擎为了给其他缓存数据提供空间而将其删除。,第十一章 大案例优化,11.4,数据缓存,2、带,过期,策略的Cache缓存,程序员可以指定缓存的过期策略,缓存的过期设置分为绝对过期和可调整过期两种。可调整过期常用于被频繁访问的缓存项。绝对过期和可调整过期不能一起使用。,建立指定过期策略的缓存项,可使用Cache对象的Add或Insert方法,这些方法会覆盖已有同键值的缓存项。每个方法都有几个重载。Add和Insert之间的区别是,Add返回对已缓存对象的引用,而Insert,没有返回值。,第十一章 大案例优化,11.4,数据缓存,2、带,过期,策略的Cache缓存,1)绝对过期缓存,Cache.Insert(DSN, connectionString, null, DateTime.Now.AddMinutes(1), TimeSpan.Zero);,以上代码插入了一个键值为“DSN”、值为connectionString变量值的绝对过期缓存项,将缓存一分钟,一分钟过后,缓存将到期。其中null表示无依赖项;TimeSpan.Zero则具有常数值0,相当于System.Web.Caching.Cache.NoSlidingExpiration,即禁用可调整过期。,第十一章 大案例优化,11.4,数据缓存,2、带,过期,策略的Cache缓存,2),可调整过期缓存,Cache.Insert,(DSN, connectionString, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(1,);,以上缓存的数据将一直保留下去,除非数据未被引用的时间达到了一分钟。其中System.Web.Caching.Cache.NoAbsoluteExpiration是禁用绝对过期,可见此参数和最后一个参数是“互斥”的数据。,第十一章 大案例优化,11.4,数据缓存,3、,带依赖项的Cache缓存,1),文件依赖项缓存,有些情况下,依赖项是一个外部文件。如数据库服务器的位置改变后,连接字符串数据随之变化,网站配置文件会由服务器管理员修改,那么连接字符串的缓存也要失效(暂不研究失效后的重新读取),这种缓存就是带依赖项的缓存。,缓存依赖项对象CacheDependency被声明在System.Web.Caching命名空间,常用于建立某缓存项与文件之间的关联。如以下代码建立了对/web.config文件的一个依赖项:,第十一章 大案例优化,11.4,数据缓存,3、,带依赖项的Cache缓存,1),文件依赖项缓存,CacheDependency cd = new CacheDependency(Server.MapPath(/web.config);,建立带依赖项的缓存,可使用Cache对象的Add或Insert方法。,第十一章 大案例优化,11.4,数据缓存,3、,带依赖项的Cache缓存,2),SQL Server数据库依赖项缓存,还有一种常用的依赖项是SQL依赖项(SqlDependency)。结合SQL Server 2005及以上SQL Server版本,在ASP.NET中使用SqlDependency,可以在数据变化时,让数据缓存项得到SQL Server发出的主动通知。这对提高应用程序的数据访问性能非常有效。,使用SqlDependency必须首先启用SQL Server的查询通知服务(Service Broker),在应用程序中使用SqlDependency的Start方法启动接收通知的侦听器,并可以用SqlCacheDependency对象简化查询通知和缓存之间的关联操作。,第十一章 大案例优化,ASP.NET 为我们提供了一个强大的、便于使用的缓存机制,用于将需要大量服务器资源来创建的对象存储在内存中。缓存这些类型的资源会大大改进应用程序的性能。缓存是由 Cache类来实现的;缓存实例是每个应用程序专用的。缓存生存期依赖于应用程序的生存期;重新启动应用程序后,将重新创建 Cache 对象。,第十一章 大案例优化,应用程序缓存提供了一种编程方式,可通过键/值对将任意数据存储在内存中。使用应用程序缓存与使用应用程序状态类似。但是,与应用程序状态不同的是,应用程序缓存中的数据更具易失性,即数据并不是在整个应用程序生命周期中都存储在内存中。使用应用程序缓存的优点是由 ASP.NET 管理缓存,它会在项过期、无效、或内存不足时移除缓存中的项。还可以配置应用程序缓存,以便在移除项时通知应用程序。ASP.NET中的缓存,如果使用得当,程序性能会有明显提升;如果使用不当,则可能带来逻辑错误。,第十一章 大案例优化,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!