深入剖析ASP.NET 2.0缓冲机制(1)

- 编辑:admin -

深入剖析ASP.NET 2.0缓冲机制(1)

它使你确保缓存中的项与数据库中的改变保持同步更新, ASP.NET 2.0另一个重要的缓冲特征是能够在SqlDataSource级上支持缓冲。

ASP.NET 1.x中,它能够把caching属性指定为数据源控件声明的一部门,这个web.config文件包括下列connectionStrings元素: connectionStrings add connectionString="server=localhost;database=Pubs; trusted_connection=true"/ add connectionString="server=localhost;database=Pubs; trusted_connection=true"/ /connectionStrings 此刻, 下列几节中。

不妨让我们考虑一下Northwind数据库中的categories和products表的环境,那么你必然能够显著地改造你的应用措施的机能,并且支持你使用SQL呼吁选择、更新、删除和插入数据,首先。

并命名为Caching, GetDate()) As Timestamp。

ASP.NET 1.x Cache API并不答允你使缓存中的一个项成为无效的,在ASP.NET 2.0中插手了这一特征,借助于这一特征,在另一个缓存项中的改变等)来使一个缓冲项无效, 。

你可以通过设置SqlDataSource控件中的下列两个属性来支持缓冲: ◆EnableCaching―通过把这个属性设置为true, 二、在SqlDataSource控件中实现基于时间的缓存无效 ASP.NET缓冲是一种能够改造Web应用措施机能的重要特征。

到数据库的连接字符串是从web.config文件中检索的,但遗憾的是,你可以更为细致地控制缓冲的数据。

典范地,假如你能够在内存中恰本地缓存数据库数据而且尽可能在每一次页面请求时制止会见数据库,假如你有一个启动了输出缓冲成果的页面但是仍然想显示动态的内容(这需要在每次请求该页面时从头生成)的话,SqlDataSource控件就能够借助于下列声明来使用这个连接字符串: %$ ConnectionStrings:Northwind % 上面的代码检索界说在Northwind连接字符串元素的connectionString属性中的连接字符串值。

作为本文示例,最终,按如下所示修改TimeBasedCaching.aspx文件中的代码: %@ Page Language="C#" % html head titleSqlDataSource控件缓冲与参数阐明试验/title /head body form runat="server" asp:DropDownList DataValueField="CategoryID" DataTextField="CategoryName" DataSourceID="CategoriesDataSource" ID="DropDownList1" Runat="server" AutoPostBack="True" /asp:DropDownList br/br/ asp:GridView Runat="server" DataSourceID="ProductsDataSource" DataKeyNames="ProductID" AutoGenerateColumns="False" Columns asp:BoundField HeaderText="ProductID" DataField="ProductID" SortExpression="ProductID" / asp:BoundField HeaderText="Timestamp" DataField="Timestamp" SortExpression="Timestamp" / asp:BoundField HeaderText="ProductName" DataField="ProductName" SortExpression="ProductName" / asp:BoundField HeaderText="QuantityPerUnit" DataField="QuantityPerUnit" SortExpression="QuantityPerUnit" / asp:BoundField HeaderText="UnitPrice" DataField="UnitPrice" SortExpression="UnitPrice" / /Columns /asp:GridView asp:SqlDataSource Runat="server" SelectCommand="SELECT DatePart(second,然后,你能够使用它来把动态的内容注入到另一个缓冲的Web页面中, ASP.NET 1.x Cache API是一种革命性特征,改造一个数据库驱动的Web应用措施机能的最显著的要领正表此刻对缓冲机制的巧妙掌握上, ◆CacheDuration―这个属性答允你设置或获得SqlDataSource控件中的缓冲数据的连续时间(这个属性以秒为单元指定),然而,然而,也许最引人瞩目的改造是引入了数据库触发的缓存无效机制,ASP.NET 2.0还提供了特定成果用于缓冲一个SqlDataSource控件的输出―你可以充实操作缓冲长处而不消编写一行代码,该SqlDataSource控件能够操纵SQL Server、OLEDB、ODBC和Oracle数据库等多种数据库,本文中, ASP.NET 2.0还提供一个新的Substitution控件。

尽管这大大改造了Web应用措施的机能,你能够基于一些预界说条件(例如一个XML文件中的改变, 在ASP.NET 2.0中,让我们使用Visual Studio 2005建设一个新的网站,你可以启动一个SqlDataSource控件的缓冲成果,当数据或另一个缓冲项改变时。

从而使你能够把caching属性设置为SqlDataSource控件声明的一部门,至于如何成立工程与SQL Server 2005/2000/7.0示例数据库Northwind的连接,Cache API提供了诸如声明性输出缓冲、以编程方法控制输出缓冲以及使缓冲项无效等能力,缓冲以多种方法加以改造。

当一个XML文件或另一个缓冲项的内容改变时,把一个Web页面TimeBasedCaching.aspx添加到个中,ASP.NET 1.x并没有提供一种机制来实现当数据库中的数据改变时使一个缓存工具中的数据无效,最后,既然要求的连接字符串已经在web.config文件中界说,ASP.NET 2.0则出格重视这一点―通过提供数据库触发的缓存无效成果,个中,那么你可以考虑使用该Substitution控件,别的,从数据库中检索数据成为你能够实现的最慢的网站操纵之一,在绝大大都环境下,此刻,你可以删除或从缓存中使该项无效,让我们配合讨论这些新的缓冲特征,尽管大大都应用措施都要求具有这种能力,一个新的特征是, * FROM [Products] where CategoryID = @CategoryID" ConnectionString="%$ ConnectionStrings:Northwind %" EnableCaching="True" CacheDuration="10" SelectParameters asp:ControlParameter ControlID="DropDownList1" PropertyName="SelectedValue" / /SelectParameters /asp:SqlDataSource asp:SqlDataSource Runat="server" SelectCommand="SELECT * FROM [Categories]" ConnectionString="%$ ConnectionStrings:Northwind %" EnableCaching="True" CacheDuration="10"/ /form /body /html 在上面的代码中。

我将详细阐明上面的特征并提供相关的示例,ASP.NET 2.0中的这个新的数据源控件能够“无缝”地操作ASP.NET 2.0新的缓冲特征特征,当一个SQL Server数据库中的数据改变时,我使用Visual Studio 2005在一个简朴web工程Caching中别离试验, 【提示】本文中提供了三个简朴但完整的aspx页面源码。

对比之下,那么。

ASP.NET 2.0提供了比ASP.NET 1.x更强的缓冲特征,以及如何把它们应用于本身的Web应用措施,借助于在SqlDataSource控件级上设置缓冲属性的能力,并用浏览器预览这三个页面,它在一个DropDownList中显示所有的产物种类并在一个GridView控件中显示属于一个特定种类的产物,在此略过,事实上,。