我们正在使用 Blazor 服务器端和 Syncfusion 控件构建一个应用程序。它们托管在 Azure 上。 页面加载时间很长。我发现了一件事似乎有问题。当页面加载时,它会寻找 JS 和 CSS 文件。即使这些页面已被缓存 (HTTP 304),有时仍需要 10 到 15 秒才能做出决定。对于每个具有 304 的文件,它传输大约 373 字节,但需要很长时间才能完成;有时需要 15 秒以上的时间来响应。有些文件只需要几毫秒,但我无法弄清楚其中的区别。累积效应是加载页面需要很长时间。我周末进行了大量搜索,但没有找到任何可以解决这个问题的方法。另外,我尝试找到一种方法来控制 blazor 服务器中的缓存,但也找不到任何东西。
更新:嗯,我找到了一些帮助。通过将其添加到启动中,我能够阻止 Bazor 对大多数 JS 文件进行版本检查,但它仍然卡在 blazor.server.js 上。
app.UseStaticFiles(new StaticFileOptions()
{
OnPrepareResponse = (context) =>
{
var headers = context.Context.Response.GetTypedHeaders();
headers.CacheControl = new Microsoft.Net.Http.Headers.CacheControlHeaderValue
{
Public = true,
MaxAge = TimeSpan.FromDays(30),
NoCache = false
};
}
});
最佳答案
我们使用 Syncfusion Blazor 组件创建了一个 Blazor 服务器应用程序,并在 azure 中托管该应用程序。不幸的是,我们最终无法复制所报告的场景。脚本文件加载时间约为 659 毫秒。另外,我们想让您知道,下载时间取决于许多因素,例如网络连接、带宽值、服务器设置等。请参阅以下文档了解更多详细信息。
https://developers.google.com/web/tools/chrome-devtools/network/issues#long-content-download
请找到以下屏幕截图和托管示例,供您引用。
托管链接: https://blazorci.azurewebsites.net/staging/blazorPerformance
您能否检查一下以上信息,并提供更多详细信息给我们,以便我们据此进行分析,为您提供更好的解决方案?
关于azure - 在 Blazor 应用程序上下载 JS 和 CSS 文件时出现性能问题,即使它们已缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63797751/