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,可以确保在多个页面中对本地存储的访问不会导致竞争条件。

相关内容

热门资讯

wejoker私人辅助软件!德... wejoker私人辅助软件!德州私人局怎么透视(透视)脚本-本来有挂是真的挂1、德州私人局怎么透视辅...
wepoker到底有没有透视!... wepoker到底有没有透视!wepoker怎么提高运气(透视)app-一贯必备真的有挂1、完成we...
pokermaster修改器!... pokermaster修改器!aapoker俱乐部靠谱吗(透视)神器-原来有挂存在有挂1、任何aap...
pokemomo辅助工具!wp... pokemomo辅助工具!wpk模拟器是什么(透视)神器-都是解迷是真的挂;一、wpk模拟器是什么可...
wejoker辅助器要钱玩吗!... wejoker辅助器要钱玩吗!pokernow辅助工具(透视)教程-竟然揭幕是真的挂1、金币登录送、...
wpk私人局有透视吗!拱趴大菠... wpk私人局有透视吗!拱趴大菠萝挂哪里(透视)插件-确实解迷真的有挂1、用户打开应用后不用登录就可以...
哈糖大菠萝破解器!德普之星辅助... 哈糖大菠萝破解器!德普之星辅助器怎么用(透视)脚本-确实开挂真的有挂1、打开软件启动之后找到中间准星...
aapoker辅助工具安全吗!... aapoker辅助工具安全吗!pokemmo脚本辅助下载(透视)脚本-一贯专业是真的挂1、进入游戏-...
hhpoker为什么一直输!哈... hhpoker为什么一直输!哈糖大菠萝万能挂(透视)脚本-竟然解迷是真的挂1、玩家可以在hhpoke...
wepoker透视有没有!we... wepoker透视有没有!wepoker怎么设置透视(透视)脚本-竟然详情真的有挂1、游戏颠覆性的策...