Blazor本地存储SetItemAsync在不同页面之间存在竞争条件。
创始人
2024-12-21 01:00:50
0

为了避免Blazor本地存储SetItemAsync在不同页面之间发生竞争条件,可以创建一个服务来控制存储和访问本地存储的代码。

以下是示例代码:

LocalStorageService.cs

public class LocalStorageService
{
    private readonly IJSRuntime _jsRuntime;

    public LocalStorageService(IJSRuntime jsRuntime)
    {
        _jsRuntime = jsRuntime;
    }

    public async Task SetItemAsync(string key, T value)
    {
        var json = JsonSerializer.Serialize(value);
        await _jsRuntime.InvokeVoidAsync("localStorage.setItem", key, json);
    }

    public async Task GetItemAsync(string key)
    {
        var json = await _jsRuntime.InvokeAsync("localStorage.getItem", key);
        return json == null ? default : JsonSerializer.Deserialize(json);
    }
}

使用LocalStorageService:

@inject LocalStorageService LocalStorage

@code {
    private async Task SaveData()
    {
        await LocalStorage.SetItemAsync("myKey", "myValue");
    }

    private async Task LoadData()
    {
        var myValue = await LocalStorage.GetItemAsync("myKey");
    }
}

通过创建LocalStorageService,可以确保在多个页面中对本地存储的访问不会导致竞争条件。

相关内容

热门资讯

记者发布!微友圈app辅助工具... 记者发布!微友圈app辅助工具,微信小程序加速器,详细器(有挂分析)1、上手简单,内置详细流程视频教...
黑科技技巧!hhpoker德州... 黑科技技巧!hhpoker德州机器人,德扑之星透视,确实真的有挂(有挂透视)1、德扑之星透视有没有辅...
黑科技技巧!约局吧辅助器,德扑... 黑科技技巧!约局吧辅助器,德扑圈透视挂,一直真的是有挂(有挂功能)1)德扑圈透视挂免费钻石:进一步探...
实操分享!德友汇开挂脚本,we... 实操分享!德友汇开挂脚本,wepoker智能辅助插件,详细挂(有挂解密)1、每一步都需要思考,不同水...
此事迅速冲上热搜!wepoke... 此事迅速冲上热搜!wepoker新号好一点吗,德普之星透视软件免费入口官网,总是是有挂(有挂猫腻)此...
重大发现!广西八一字牌可以破解... 重大发现!广西八一字牌可以破解码,开心泉州小程序福州,详细神器(真的有挂)1、广西八一字牌可以破解码...
最新消息!wepoker私人局... 最新消息!wepoker私人局怎么玩,德普辅助软件,原来存在有挂(有挂秘笈)1、德普辅助软件模拟器是...
热点讨论!新道游正版作弊,欢乐... 热点讨论!新道游正版作弊,欢乐茶馆辅助器,详细攻略(有挂攻略)1、每一步都需要思考,不同水平的挑战会...
教学盘点!创思维激K辅助器开挂... 教学盘点!创思维激K辅助器开挂,情怀莆仙辅助,详细工具(有挂细节)1、全新机制【创思维激K辅助器开挂...
分享认知!蜀山四川破解好友版辅... 分享认知!蜀山四川破解好友版辅助,乐胡脚本,详细攻略(有挂辅助)所有人都在同一条线上,像星星一样排成...