在网站最初加载时显示加载 Blazor (webassembly) Assemblies/Dlls

Show loading Blazor (webassembly) Assemblies/Dlls when the site is initially loaded

我正在测试一个 Blazor Webassembly 应用程序,最初加载需要很长时间(我没有使用程序集修剪和延迟加载)...并且使用浏览器控制台,我注意到很多 assemblies/dlls 每次最初访问网站时首先下载到客户端(请参见下面的示例图片):

有没有办法在 blazor 应用程序的“正在加载...”中显示正在下载的程序集?

这样用户就可以看到应用程序最初下载的库是什么,而不仅仅是一个微调器或盯着静态的“正在加载...”文本?

使用js启动Blazor,你可以这样做

Blazor wasm 允许您通过 js 自定义启动行为。

<script src="_framework/blazor.webassembly.js" autostart="false"></script>

这将禁止 Blazor 在下载脚本后立即启动。 您现在可以使用 Blazor 全局变量启动 blazor。

<script>
Blazor.start({
    loadBootResource: function (type, name, defaultUri, integrity) {
      const doc = document.getElementById("app"); // assuming you have <div id="app"> as the root component
      doc.innerHtml += `${name} ${defaultUri} <br />`;
    }
});
</script>

loadBootResource 上返回 nullundefined 将使 Blazor 的默认下载行为完成它的工作。我们只是连接到它以获取正在下载的内容。

有关 MS 文档的更多信息:https://docs.microsoft.com/en-us/aspnet/core/blazor/fundamentals/startup?view=aspnetcore-5.0#load-boot-resources-1