轉帖|使用教程|編輯:龔雪|2021-05-10 10:04:31.273|閱讀 261 次
概述:在搭建Angular項目時,通過使用打包、懶加載、變化檢測策略和緩存技術,再輔助第三方組件,可有效提升項目性能。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
應該有很多人都抱怨過 Angular 應用的性能問題。其實,在搭建Angular項目時,通過使用打包、懶加載、變化檢測策略和緩存技術,再輔助第三方組件,便可有效提升項目性能。
為了幫助開發者深入理解和使用Angular,本文將以我司客戶中最為典型的業務場景——在線表格編輯為例,演示如何借助懶加載技術,在基于 Angular的框架中實現在線導入導出Excel以及數據在線填報的功能。
完成上述環境搭建,便可將 SpreadJS及在線表格編輯器組件集成到 Angular 項目中,實現在線導入導出Excel以及數據在線填報等功能。
在開始優化之前,我們先來分析一下是什么因素影響了項目的性能。
在集成SpreadJS表格組件后,項目的公式數據處理速度符合預期,頁面在運行也較為流暢。但是發布后,用戶打開頁面在加載時間上要比開發環境有所延長,帶來的用戶體驗較差。經過調研,發現在Angular的默認中,NgModule都是急性加載的,也就是會在應用加載時盡快加載。無論是否要立即使用,所有模塊都會一并加載。
因此,對于多路由的大型應用,建議采用懶加載——按需加載的NgModule的模式。通過懶加載可以減少初始包的尺寸,從而減少加載時間。
在Web應用程序中,系統的瓶頸常在于系統的響應速度。如果系統響應速度過慢,用戶就會出現埋怨情緒,系統的價值也因此會大打折扣。懶加載會在首次加載時,將必須的模塊加載,而其余暫時用不到的模塊則不會加載。例如在商城系統中,用戶打開金喜正規買球時,只需展示商品,此時用不上支付模塊,所以支付模塊就可以使用懶加載技術。
1. 劃分業務模塊
要懶加載Angular模塊,需要在AppRoutingModule routes中使用loadchildren替代component進行配置。
在懶加載模塊的路由模塊中,添加一個指向該組件的路由。本次的demo存在兩個懶加載的模塊。
2. 建立導航UI
雖然可以直接在地址欄直接輸入URL,但是有導航UI會更好用。三個a標簽分別代表主頁以及兩個需要懶加載的模塊。
3. 導入與路由配置
CLI會將每個特性模塊自動添加到應用級的路由映射表中,最后通過添加默認路由來最終完成。
4. 特性模塊內部
我們到lazy-webexcel.module.ts文件看下,導入了lazy-webexcel-routing.module.ts和lazy-webexcel.component.ts文件。\@NgModule的imports數組列出了LazyWebExcelRoutingModule,讓LazyWebExcelModule可以訪問他自己的路由模塊。另外,LazyWebExcelComponent屬于LazyWebExcelModule。
設置path為空,因為AppRoutingModule 中的路徑已經設置了,LazyWebExcelRoutingModule中的此路由已經位于lazywebexcel這個上下文中。另一個模塊配置也類似,因此不再贅述。
5. 確認它正常工作
我們可以通過Chrome的開發者工具的網絡頁標簽來確認這些模塊是否懶加載。點擊Designer Component LazyLoad,可以看到下圖的文件出現,表示準備就緒,特性模塊被惰性加載成功。
經過優化,首屏加載時間能得到有效的降低。另外,再說一下forRoot和forChild。CLI會把RouterModule.forRoot(routes)添加到AppRoutingModule的imports 數組中。這會讓Angular知道AppRoutingModule是一個路由模塊,而 forRoot() 表示這是根路由模塊。它會配置傳入的所有路由、讓你能訪問路由器指令并注冊 Router。
CLI 還會把 RouterModule.forChild(routes) 添加到各個特性模塊中。這種方式下 Angular 就會知道這個路由列表只負責提供額外的路由并且其設計意圖是作為特性模塊使用。你可以在多個模塊中使用 forChild()。
以上就是 SpreadJS 結合Angular框架,并借助懶加載技術優化在線Excel項目的主要過程。除了懶加載,Angular還提供了很多性能優化方式,如瀏覽器緩存策略、RxJS、Tree Shaking、使用AoT編譯等,用好這些技術能讓你的項目性能有所提升,為用戶提供更良好的使用體驗。
純前端表格控件SpreadJS,兼容 450 種以上的 Excel 公式,具備“高性能、跨平臺、與 Excel 高度兼容”的產品特性,備受華為、蘇寧易購、天弘基金等行業龍頭企業的青睞,并被中國軟件行業協會認定為“中國優秀軟件產品”。SpreadJS 可為用戶提供類 Excel 的功能,滿足表格文檔協同編輯、 數據填報、 類 Excel 報表設計等業務場景需求,極大的降低企業研發成本和項目交付風險。
本文轉載自
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: