為什麼在瀏覽器 > 開發工具 > 網路中的 Blazor WebAssembly 應用程序上看不到 DLL 和 dotnet.wasm?
我正在擺弄預設的 VS2019 (16.6.5) Blazor WebAssembly 項目。但是,當我查看Chrome(或 Firefox 或 Edge)> 開發人員工具時$$ F12 $$> network,啟用禁用記憶體後,我看不到載入多少?
在Dev Tool > Sources中,我可以看到dotnet.wasm已以某種方式載入。
通過閱讀一些類似這樣的文章,我看到了顯示 DLL 和 wasm 正在載入的螢幕截圖。
為什麼我看不到?
編輯:好的,我成功地看到載入了我想要的 DLL,只有在從 VS2019 開始調試 Blazor WebAssembly 項目時。當我在沒有調試的情況下啟動項目時,我仍然得到與第一個螢幕截圖相同的輕量級負載。為什麼?
Blazor WASM 在 RTM 版本 3.2 發布(2020 年 5 月)之前更改了載入行為,因此之前的範例展示了舊行為。
當 Blazor WASM 應用程序載入時,它會為每個 DLL 創建一個清單和校驗和,這被載入到
blazor.boot.jsonBlazor 程式碼將檢查瀏覽器記憶體儲存中的這些文件(和校驗和)。請注意,這與瀏覽器用於普通內容(例如 HTML、CSS 等)的記憶體不同。
如果它們不存在(第一次執行),它們就會被載入。您可以在此處查看載入的文件:
這些文件在第一次執行時載入。在以後的頁面訪問中,如果文件名和校驗和匹配,即使您選擇瀏覽器的*“空記憶體和硬重新載入”也不會重新載入***
為什麼?這是有道理的,因為像這樣的文件
mscorlib.dll不會因為應用程序重新編譯而改變。這不是 JavaScript,它是二進製文件。SHA256 校驗和驗證它是同一個文件。但是,如果您編輯和重新編譯,您的 Blazor 應用 DLL 將發生變化。如果他們這樣做,他們會重新載入:
如果您想強製完全重新載入,您可以導航到瀏覽器記憶體(在 Chrome 開發人員工具中的應用程序下),然後為您的站點選擇刪除。





