blazor - Blazor 服务器 JavaScript 调用数据传输
问题描述
幸运的是,我们可以轻松地从 Blazor 服务器的 C# 代码调用 JavaScript 函数,请参阅此 MSDN 页面。JavaScript 代码将在客户端的浏览器上运行,C# 代码在服务器上运行,Blazor 的 SignalR 连接位于这两者之间。
但我要求澄清 SignalR 连接是否是负责在这两者之间来回传输函数的输入/输出值的连接。我能找到的唯一提示来自Chris Sainty 的博客:
您会注意到这两种方法都是异步的。这很重要,因为如果您希望您的代码在客户端和服务器端 Blazor 中工作,那么由于服务器端 Blazor 使用 SignalR 连接,所有 JS 互操作调用都必须是异步的。
不幸的是,我在 MSDN 页面上找不到有关如何传输值的确切信息。
在通过 JavaScript 运行时(例如使用 Firebase Firestore JavaScript 库)获取数据的情况下,如何传输数据可能很重要。如果需要将获取的数据发送回 Blazor 服务器以将所需的更改推送到 DOM,会不会有额外的往返行程?
解决方案
Blazor 不会知道 JavaScript 对 DOM 所做的更改。因此,允许 JavaScript 对 DOM 进行更改并不是一个好主意。干净的方法是通过 JSInterop 调用 Blazor,而不是通过 JS 更改 DOM。而最好的办法就是不使用JS。
推荐阅读
- python - 将 Anaconda Navigator 与 Miniconda 的 `conda` 一起使用
- mongodb - 使用 _id 查找不适用于聚合
- json - Magento 开发者编码问题 (Upwork)
- visual-studio-lightswitch - VSTS 中 LightSwitch 模型加载失败
- node.js - Express.js:用户只访问他们创建的数据
- python - 间谍?从文件资源管理器复制文件绝对或相对路径
- google-sheets - 如何创建过滤器以在列中的谷歌表中查找恰好 n 个单词的数据?
- java - 在 Java 类中调用 Kotlin 挂起函数
- php - cURL PHP 返回奇怪的字符串
- sql-server - ms 访问相当于 sql server 的 Cast as Bit