使用 Blazor 应用程序的 PWA 打包功能
Blazor 应用程序的 PWA 打包功能可以解决 Blazor wasm 首次加载缓慢的问题。具体实现方法如下:
1.在 Blazor 应用程序中添加对 Microsoft.AspNetCore.Components.WebAssembly.Packaging 的引用。
2.修改项目文件(例如 .csproj 文件),在项目的 PropertyGroup 中添加以下内容:
true
3.在 Startup.cs 文件中将以下行添加到 ConfigureServices 方法中:
services.AddServiceWorker(new PwaOptions
{
RegisterServiceWorker = true,
Strategy = ServiceWorkerStrategy.CacheFirst,
CacheId = "v1",
RoutesToPreCache = "/index.html,/service-worker.js,/manifest.json",
OfflineHtml = "/offline.html",
CacheAssets = true,
MaximumCachedFiles = 200
});
此代码添加了一个 Service Worker,从而实现了在应用程序启动时快速加载 Blazor wasm。
4.构建和发布应用程序后,应用程序的首次加载时间将显著缩短。
以上方法中,PWA 功能默认启用了 Service Worker,利用浏览器缓存机制来优化页面加载速度。在首次访问页面时,Service Worker 需要下载服务工作文件和应用程序文件,因此首次加载时间可能会长一些。但之后再次打开页面,浏览器会从缓存中读取文件,使页面加载速度更快。