图7显示的是在浏览器登录该页面的画面。同样都是用BLL层的SuppliersBLL class类来获取数据,不同的是我们用StaticCache class类在程序开始时将数据缓存并将其返回。你可以在StaticCache class类的GetSuppliers()方法里设置断点来进行验证。
图7:将缓存的Supplier数据显示在GridView控件
结语:
几乎每一种数据模式(data model)都包含有静态数据,且通常情况下都会用到对应的"查找表"(lookup tables)。正因为这些信息是静态的,所以没有必要每次展示数据时都访问数据库。此外,因其“静态”的本质,当缓存数据时没有必要设置周期(expiry).在本文,我们看到了如何用data cache, application state和static member变量来缓存数据。这些数据在程序启动是就进行缓存,且贯穿程序的整个生命周期(lifetime)中,都会保留在内存里。
在本文及前面2章,我们探讨了在程序的生命周期内缓存数据,以及使用基于时间的缓存周期(time-based expiries)。当缓存数据库数据时,若源数据(underlying database data)改变时我们应将对应的缓存条目移除。在这个问题的处理上,虽然使用基于时间的缓存周期的方法还算不上完美,但与通过编程来“刷新”数据相比,还算上佳方案。最佳方案或许是使用SQL cache dependencies,对此,我们将在接下来的文章继续探讨。
祝编程快乐!
作者简介
本系列教程作者 Scott Mitchell,著有六本ASP/ASP.NET方面的书,是4GuysFromRolla.com的创始人,自1998年以来一直应用 微软Web技术。大家可以点击查看全部教程《[翻译]Scott Mitchell 的ASP.NET 2.0数据教程》,希望对大家的学习ASP.NET有所帮助。
您可能感兴趣的文章: