快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
ers>
<asp:Parameter Type="String" Name="au_id" />
<asp:Parameter Type="String" Name="au_lname" />
<asp:Parameter Type="String" Name="au_fname" />
<asp:Parameter Type="String" Name="phone" />
<asp:Parameter Type="String" Name="address" />
<asp:Parameter Type="String" Name="city" />
<asp:Parameter Type="String" Name="state" />
<asp:Parameter Type="String" Name="zip" />
<asp:Parameter Type="Boolean" Name="contract" />
</InsertParameters>
</asp:SqlDataSource>
</form>
</body>
</html>

上面的代码在SqlDataSource控件上施加了SQL缓存无效功能。你已经看到,这个SqlDataSource控件包含EnableCaching和SqlCacheDependency两个属性。其中,SqlCacheDependency属性使用下列语法:

SqlCacheDependency="Pubs:authors"

在这个属性声明中,你首先列举出数据库的名称,后面跟着的是数据库表名。由于这一属性,无论何时Pubs数据库中的authors表中的数据改变,缓冲数据都会自动地无效。注意,你在此指定的数据库名应该已经定义在web.config文件的connectionStrings节中。

作为SqlDataSource控件声明的一部分,你还要指定SelectCommand,InsertCommand,DeleteCommand,UpdateCommand和ConnectionString属性。这些xxxCommand属性允许你指定要被执行的SQL命令,而ConnectionString属性允许你指定用于连接到Pubs数据库的连接字符串;另外,这个值还可以从web.config文件中进行检索。因为该xxxCommand属性也包含SQL查询参数,所以,它们可以在DeleteParameters,UpdateParameters和InsertParameters模板中指定。

最后,声明一个GridView控件并且使用DataSourceID属性把GridView控件绑定到SqlDataSource控件上。通过把GridView的DataSourceID属性设置为SqlDataSource控件的ID,从SqlDataSource返回的数据就可以被自动地显示。

现在,代码分析完毕;那么,接下来,你可以启动浏览器导航到该页面来测试这种缓冲功能。你将看到类似下图1的输出结果:

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

图1:在SqlDataSource控件中实现SQL缓存无效运行结果

其中,这里的timestamp栏显示数据库日期的“秒”部分。如果你再次刷新该页面,你将在随后显示的输出中看到相同的时间,因为你已启动了该SqlDataSource控件中的缓冲功能。

现在,为了测试这种基于SQL Server的触发器无效效果,你可以点击一个Edit超级链接并更新相应的作者信息。之后,你应该在显示于上面的页面中的timestamp中看到发生了改变。这个例子非常清晰地展示了,一旦authors表中的数据发生变化,你的基于SQL Server的触发器无效机制将自动地使SqlDataSource控件中的缓冲内容无效。

七、部分页面缓冲技术

到目前为止,你已经看到了如何在SqlDataSource控件中使用缓冲技术。本节将向你展示如何使用回寄方式缓存Substitution以便用刷新的内容替换被缓冲的内容部分。这称作“部分页面缓冲”或“页面片断缓冲”。这是一种强有力的特征,它允许应用程序使用页面级缓冲—即使该页面的部分是动态生成的。

页面片断缓冲提供对页面中一个片断进行缓冲的功能,这与缓冲整个页面形成对照。有时,整页面输出缓冲是不可行的—例如,当该页面的部分需要针对每一个用户请求动态地创建时。在这些情况下,标识出该页面或控件中不经常改变的部分以及那些需要耗费相应的服务器

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号