这种问题的原因是由于 Blazor Web Site 的自动重新加载机制所导致的。为了解决这个问题,我们可以手动将自动重新加载机制关闭,然后每次需要重新加载的时候手动刷新页面。
具体实现方式如下所示:
这段代码将设置一个定时器,每隔 60 秒钟自动刷新页面一次。
public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// 禁用自动重新加载
builder.Services.AddSingleton(typeof(IJSRuntime), typeof(JSRuntime)).AddSingleton(sp => {
var jsRuntime = (JSRuntime)sp.GetService(typeof(JSRuntime));
jsRuntime.EnableAutoReload = false;
return jsRuntime;
});
var host = builder.Build();
await host.RunAsync();
}
}
使用这个方法禁用掉了自动重新加载机制之后,每次需要重新加载页面的时候,就可以手动点击刷新按钮来实现刷新操作了。