幸运的是,我们可以轻松地从 Blazor 服务器的 C# 代码调用 JavaScript 函数,请参阅此 MSDN 页面。JavaScript 代码将在客户端的浏览器上运行,C# 代码在服务器上运行,Blazor 的 SignalR 连接位于这两者之间。
但我要求澄清 SignalR 连接是否是负责在这两者之间来回传输函数的输入/输出值的连接。我能找到的唯一提示来自Chris Sainty 的博客:
您会注意到这两种方法都是异步的。这很重要,因为如果您希望您的代码在客户端和服务器端 Blazor 中工作,那么由于服务器端 Blazor 使用 SignalR 连接,所有 JS 互操作调用都必须是异步的。
不幸的是,我在 MSDN 页面上找不到有关如何传输值的确切信息。
在通过 JavaScript 运行时(例如使用 Firebase Firestore JavaScript 库)获取数据的情况下,如何传输数据可能很重要。如果需要将获取的数据发送回 Blazor 服务器以将所需的更改推送到 DOM,会不会有额外的往返行程?