我正在设计一个数据驱动的网站,其中有一个页面,显示列出了相关数据的人员 - 联系信息,爱好等。每个列表都是相当静态的 - 它很少变化。目前,当加载列表时,从包含来自azure表的人数据的行中提取数据。这个过程使我的页面加载速度慢得令人无法接受。我的问题是,我可以预先组装整个人员列表页面html,以及每个列表的相关数据,并保存到blob存储吗?这样,如果用户想要查看“人员列表A”,则从天蓝博客容器接收预组装列表并直接提供给客户端?我确实看过azure redis,但看起来它会更昂贵,实现起来可能更复杂。
答案 0 :(得分:0)
您有几个(几乎)内置选项。使用ASP.net MVC,你可以使用开箱即用的output caching,但只有你想将相同的数据返回给很多人才能真正使用它。虽然您可以使用VaryByParam属性来缓存同一页面的几个不同版本。
您已经提到的另一个选项是从外部缓存数据。您可以在Redis中保存人员列表,也可以只保存在自.NET Framework 4.5以来可用的MemoryCache中。
渲染整个页面,捕获输出,将其保存到blob存储,在必要时检索它,将其发送给用户并管理缓存声音,以便解决这个常见问题。我更喜欢前两个解决方案,这些解决方案适用于这样的场景,并且被数百万个站点用于效果很好。