【发布时间】:2021-04-23 12:27:27
【问题描述】:
它是一个包含大约 100 个 .razor 页面的 Blazor 服务器项目,
当其中一个页面发生更改时,重建页面、重新启动 IIS Express 并刷新页面大约需要 19 秒。太糟糕了,我只对html做了一点小改动,但是显示结果需要很长时间。
测试结果是这样的:
拥有 100 个剃须刀页面以及所有 css 和 js 引用
构建:10 秒
刷新页面:19 秒(包括 10 秒的构建时间)
当我们删除 100 页中的 90 页时(剩下 10 页):
构建:3 秒
刷新页面:12 秒(包括 3 秒构建)
当我们删除所有 css 和 js 引用时:
构建:3 秒
刷新页面:6 秒(包括 3 秒构建)
一点都不好,因为项目在增长,最终我们将有大约 400 页!并且将添加额外的 css 和 js 引用。在这种情况下,开发的时间会长很多。
https://github.com/dotnet/aspnetcore/issues/29416
解决办法是什么?
我尝试发表我的研究结果,可能对其他人有用
解决方案 1: OnInitialized 调用两次,使用 OnAfterRender(bool first) {if(firs) {... }} 而不是 OnInitialized() 减少了时间。但不影响构建时间。
解决方案 2: Google Chrome 浏览器拥有最好的缓存机制来减少测试和开发的 UI 渲染时间。但不影响构建时间。
解决方案 3: 我在 PropertyGroup 标记内的项目中添加了禁用。它减少了构建时间。
【问题讨论】:
-
只更改一个页面就应该重建所有页面,这听起来很奇怪。检查你的依赖关系?
-
我认为 Blazor 在每次更改后都会重建整个项目,因为它会在 .dll 文件中生成所有内容
-
是的,我做到了。如果我有一个 400 页的项目会怎样?
-
页面加载时间与css文件的关系不大。
标签: performance blazor blazor-server-side