我正在开发Blazor服务器端应用程序。在某些情况下,当用户更新资源时,应用程序将显示一个toast,询问用户是否要刷新其视图(或不刷新),因为如果您正在分析某些内容,您可能还不希望刷新。
toast是由系统级事件而非本地函数触发的,因为事件必须发送给其他已登录的用户(有时甚至还没有登录的用户——他们一登录就会收到通知)。
问题是,我不想让做出改变的窗户得到这些祝酒词,因为改变起源于那里——我只想
另外
登录窗口以获取toast,无论该窗口是以同一用户还是其他用户的身份登录。
与不同的用户打交道非常容易——我只需输入登录的
userID
如果ID与当前用户匹配,则不显示toast。我的问题是,如果进行更改的用户使用多个打开的浏览器窗口登录,我如何在一个用户窗口上显示toast,而不在另一个窗口上显示?
我在想如果我加一个
originationID
到toast对象,并为其分配一个窗口会话唯一的值,然后当toast被激发时,它可以查看该ID是否与当前窗口会话ID匹配,如果匹配则忽略该toast。
是否有一个唯一的窗口ID与一个浏览器窗口(在blazor中)关联,但不与同一用户拥有的另一个窗口关联?我希望线程ID可能是一种有用的方式来判断toast事件源自哪个窗口,但即使窗口只是在更改位置,该ID似乎也会频繁更改。