azure - 在 Blazor 应用程序上下载 JS 和 CSS 文件时出现性能问题,即使它们已缓存

标签 azure performance asp.net-core blazor syncfusion

我们正在使用 Blazor 服务器端和 Syncfusion 控件构建一个应用程序。它们托管在 Azure 上。 页面加载时间很长。我发现了一件事似乎有问题。当页面加载时,它会寻找 JS 和 CSS 文件。即使这些页面已被缓存 (HTTP 304),有时仍需要 10 到 15 秒才能做出决定。对于每个具有 304 的文件,它传输大约 373 字节,但需要很长时间才能完成;有时需要 15 秒以上的时间来响应。有些文件只需要几毫秒,但我无法弄清楚其中的区别。累积效应是加载页面需要很长时间。我周末进行了大量搜索,但没有找到任何可以解决这个问题的方法。另外,我尝试找到一种方法来控制 blazor 服务器中的缓存,但也找不到任何东西。

This image shows 3 files, all were 304, all transfered 373B but one took 471ms and the others took 9 or 15 seconds

更新:嗯,我找到了一些帮助。通过将其添加到启动中,我能够阻止 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/

相关文章:

azure - Azure 逻辑应用程序运行失败的电子邮件警报

shell - 使用 terraform 在 Azure VM 中运行自定义 shell 脚本

没有 JIT 的 Android 设备

c# - .NET Core 无法连接到 SQL DB

c# - 如何更改 Swagger 默认 URL 并使用自定义 URL?

azure - 在 Azure ADX Kusto 查询中将 UTC 时间转换为特定时区

javascript - 用常量替换字符串来优化 Javascript 代码是否值得?

django - 如何为可能的斜线打点 Django 做好准备?

c# - ASP.net 核心 : Model is null during rendering a page to string

Azure AD B2C 如何更改 token exp声明值