1. 程式人生 > >Blazor-斷開連線後重新載入瀏覽器

Blazor-斷開連線後重新載入瀏覽器

在大多數情況下,Blazor將與以前相同的線路上重新連線到伺服器。但有時無法重新連線,需要重新載入web瀏覽器才能使網站重新工作。如果伺服器回收應用程式池,則需要手動重新載入頁面
在沒有除錯的情況下在IIS Express上開發和執行站點時,使用自動重新載入可以加快開發過程。只需儲存您的檔案並切換到web瀏覽器,它將在編譯完所有內容並準備就緒時自動重新整理。
有一種方法可以自動重新載入瀏覽器。 前一段時間,丹·羅斯(Dan Roth)在Github上釋出了一個解決方案,將以下指令碼貼上到_host.cshtml中。 這使用JS DOM mutation observer API來檢測“重新載入”按鈕何時可見,並自動重新載入頁面。

<script>
    // 等待直到出現“重新載入”按鈕
    new MutationObserver((mutations, observer) => {
        if (document.querySelector('#components-reconnect-modal h5 a')) {
            // 現在,每隔10秒,檢視伺服器是否返回,如果返回,則重新載入
            async function attemptReload() {
                await fetch(''); // 檢查伺服器是否真的返回
                location.reload();
            }
            observer.disconnect();
            attemptReload();
            setInterval(attemptReload, 10000);
        }
    }).observe(document.body, { childList: true, subtree: true });
</script>

  

更多檢視 https://github.com/dotnet/aspnetcore/issues/10325

&n