JsRuntime.InvokeAsync 是否有 return 值大小限制?
Has JsRuntime.InvokeAsync a return value size limitation?
当我尝试从 Blazor 函数调用 JavaScript 函数时,我的服务器端 Blazor 应用程序与服务器之间的连接中断,当函数 return 是一个长度超过 32,721 个字符的字符串时。我
在我的 Razor 页面中,我执行:
var data = await JsRuntime.InvokeAsync<string>("myfunction");
JavaScript 函数 myfunction
看起来像这样:
function myfunction() {
return 'x'.repeat(32721);
}
这有效,但是当我使用 32722
作为参数时,连接中断,我不知道为什么以及如何解决这个问题。
将字符串拆分为 1000 字节长的 chungs 和 returning 一个字符串[] 也没有效果。
我需要 return 大约 200.000 字节。有什么限制吗?
观察 websocket 的消息,我可以看到 103kB 的消息,然后是“JS.RenderBatch”、“OnRenderCompleted”,最后是“Connection closed with an error”,但我找不到任何错误消息控制台或日志。
这是 SignalR 消息大小限制。请参阅 this GitHub issue. There's also this from the MS docs 分块响应以绕过消息大小限制。
当我尝试从 Blazor 函数调用 JavaScript 函数时,我的服务器端 Blazor 应用程序与服务器之间的连接中断,当函数 return 是一个长度超过 32,721 个字符的字符串时。我
在我的 Razor 页面中,我执行:
var data = await JsRuntime.InvokeAsync<string>("myfunction");
JavaScript 函数 myfunction
看起来像这样:
function myfunction() {
return 'x'.repeat(32721);
}
这有效,但是当我使用 32722
作为参数时,连接中断,我不知道为什么以及如何解决这个问题。
将字符串拆分为 1000 字节长的 chungs 和 returning 一个字符串[] 也没有效果。
我需要 return 大约 200.000 字节。有什么限制吗?
观察 websocket 的消息,我可以看到 103kB 的消息,然后是“JS.RenderBatch”、“OnRenderCompleted”,最后是“Connection closed with an error”,但我找不到任何错误消息控制台或日志。
这是 SignalR 消息大小限制。请参阅 this GitHub issue. There's also this from the MS docs 分块响应以绕过消息大小限制。