PersistentComponentState 相对于 MemoryCache 有什么优势吗?

问题描述 投票:0回答:1

对于 Blazor

InteractiveServer
渲染模式,Microsoft 文档建议在预渲染调用中我(和您)读取页面所需的数据并将其保存到 PersistentComponentState。然后在第二次调用
OnInitializeAsync
时,从 PersistentComponentState 中读取以填充页面。

为什么不使用

MemoryCache
?这样做有什么坏处吗? 阅读 Microsoft 文档 看起来这是一个应用程序全局数据存储,而不是每个电路存储。所以我认为
MemoryCache
基本上是一样的。

blazor blazor-server-side
1个回答
0
投票

针对不同的问题有不同的解决方案。

对于初学者来说,您不能依赖缓存来始终保存数据:

缓存指南

  • 代码应该始终有一个后备选项来获取数据,而不是依赖于可用的缓存值。

PersistentComponentState 似乎被明确设计为支持 Blazor 并跨不同渲染模式交叉数据,因此它将是我的第一选择。

主要区别在于,MemoryCache 将(可以)存储所有 .net 对象,而 PersistentComponentState 则与 Json 序列化一起使用。对于支持 Wasm 和应用程序暂停场景至关重要。但您的数据需要可序列化。

© www.soinside.com 2019 - 2024. All rights reserved.