前言¶
DSH 的網頁端運行在瀏覽器中,除了常規的功能加載,還會受到網絡波動、瀏覽器緩存策略和連接生命週期影響。移動端切後臺後連接被靜默斷開、瀏覽器沒有立刻感知到斷開、頁面重複加載造成額外傳輸,都是比較常見的情況。
dsh-web-network-optimizer 針對這些問題提供連接狀態提示、斷連恢復、響應壓縮和瀏覽器緩存策略,適合需要穩定使用 DSH Web 界面,或在弱網環境下使用 DSH 的開發者。
這是什麼¶
dsh-web-network-optimizer 是由 enterhalf 維護的 DSH 插件,採用 MIT 許可證。它通過緩存與壓縮技術降低網頁端傳輸量,並提供網絡斷連指示與自動斷網重連能力。
插件聲明的依賴爲:
cordis >=4.0.0-rc <5
核心功能¶
連接守護¶
插件會在頁面回前臺時以及每 30 秒心跳主動探測連接真實狀態。發現舊連接已死時,會觸發自動恢復。
會話標題左側的小圓點用於顯示連接狀態:
- 綠色:連接正常
- 灰色:檢查中或重連中
- 紅色脈衝:離線、異常或正在恢復
點擊小圓點可手動強制重連。
響應壓縮¶
插件對所有可壓縮響應下發 brotli,並以 gzip 作爲兜底。本地迴環訪問與遠程訪問的行爲保持一致。
瀏覽器緩存¶
緩存策略按資源類型區分:
/assets/*與 favicon 使用文件名即內容哈希的方式,更新後會更換 URL,並下發Cache-Control: immutable。- 插件
client.js使用no-cache,並由插件補發ETag;未變化時返回304,變化時更新內容。
這樣做的目標是減少重複傳輸,同時避免長期緩存導致無法跟隨更新。
分插件流量賬本¶
打開:
設置 → Web 網絡優化器 面板
可以查看每個插件本次加載與累計流量、壓縮節省、緩存命中情況。
緩存自檢¶
懷疑瀏覽器緩存沒有跟上更新時,面板「緩存自檢」提供 DevTools 手動清緩存的三選一指引,可一鍵複製菜單操作後手動執行。
安裝與卸載¶
安裝插件:
dsh plugin --profile web add dsh-web-network-optimizer@latest
卸載插件:
dsh plugin --profile web remove dsh-web-network-optimizer
卸載時,路由包裝會被完整還原;賬本文件保留在:
~/.dsh/storages/dsh-web-network-optimizer/
孤兒緩存由瀏覽器配額自動回收。
本地開發安裝可使用目錄路徑:
dsh plugin --profile web add /path/to/dsh-web-network-optimizer
典型用法¶
1、安裝後打開 DSH Web 界面,在會話標題左側查看小圓點,確認連接狀態。
2、如果懷疑連接卡住,點擊小圓點執行手動強制重連。
3、進入:
設置 → Web 網絡優化器 面板
查看流量賬本,確認本次加載、累計流量、壓縮節省與緩存命中。
4、如果頁面內容沒有更新,打開面板「緩存自檢」,複製 DevTools 菜單操作並在瀏覽器中執行一次。
適用場景與注意¶
該插件適合兩類使用場景:
- 希望減少 DSH 網頁端重複傳輸、降低頁面加載開銷。
- 在網絡不穩定、移動設備切後臺後容易出現斷連的環境中使用。
使用前需要注意:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼、依賴與 MIT 許可證。 immutable僅用於文件名自帶哈希的/assets與 favicon;client.js使用no-cache + ETag,避免瀏覽器因immutable不再發起請求。- 極端場景,例如瀏覽器異常緩存、代理改寫等,仍可能殘留舊內容,需要按面板指引手動清除瀏覽器緩存。
結尾¶
dsh-web-network-optimizer 把 DSH 網頁端常見的“斷連無感知”和“重複傳輸”兩個問題納入同一套處理:連接狀態可見、斷連可恢復、緩存與壓縮策略可檢查。
GitHub 倉庫:
https://github.com/enterhalf/dsh-web-network-optimizer
目錄頁 URL 未在已覈實資料中確認,建議以 GitHub 倉庫和插件包信息爲準。