簡體   English   中英

托管具有差異加載的 Angular 應用程序時,如何決定可以使用 HTTP 2 服務器推送推送哪些文件?

[英]How to decide which files can I push with HTTP 2 Server Push when hosting an Angular App with differential loading?

我有一個 Angular 8 應用程序,它默認為每個包生成 2 個 js 文件,ES5 和 ES6 版本。 我想利用 HTTP 推送,但我不知道要推送哪個版本。

是否有可能以某種方式從請求中找出我應該推送哪些包。

這里看來,為除 IE 之外的所有瀏覽器推送 ES6 版本似乎是一個安全的選擇。 有沒有更好的邏輯? 如何檢測IE是否在使用中?

編輯:

我完全理解 Angular 差異加載是如何工作的,問題是它由瀏覽器通過決定從提供的版本中獲取哪些資源來控制。 現在使用 HTTP 服務器推送,必須決定將哪些資源與index.html一起推送到客戶端,即在瀏覽器解析文件並選擇js文件版本之前。 更多關於服務器推送(通過 Nginx)。

因此,如果我推送一個以后不會使用的版本,那么我最終會通過讓瀏覽器下載兩個版本來增加加載時間,而不是縮短加載時間。

為此,您可以啟用 angular 的差異加載功能。 這將允許您在 ES5 和 ES6 中生成 dist 代碼。 如果某些舊版瀏覽器不支持 ES6,則將通過這種方式加載 ES5 代碼。 欲了解更多信息,請到這里

我希望這可以幫助你。 如果您有任何其他問題,請告訴我。

  • Angular CLI 從 browserslist 配置了解瀏覽器支持范圍。
  • 如果應用程序需要支持 ES5 瀏覽器並且 TypeScript 目標高於 es5,CLI 會自動制作額外的包以實現兼容性。
  • browserslist 是唯一的真實來源,因此 es5BrowserSupport 將被棄用。

“差異加載”,它讓我們從考慮應用程序的瀏覽器兼容性中解脫出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM