成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

AngularJS的七種常見優秀實踐

譯文
新聞 前端
針對Web應用的開發與性能,本文介紹了七種有關AngularJS的常見優秀實踐。

【51CTO.com快譯】上個世紀90年代,AngularJS(https://dzone.com/articles/angulajs-basic-to-expert-day-one)作為一種全新的框架技術,被引入了專業的動態Web應用構建領域。如今,在Web應用的開發環境中,Angular已經成為了業界使用廣泛的框架之一。不過,與傳統的AngularJS不同,從Angular 2框架開始,它允許開發人員為各種Android和iPhone設備構建最基礎的應用程序。

雖然Angular通過不同的版本在持續進行著自身優化,但是對于用戶而言,一旦錯誤地使用了AngularJS所提供的某些方法,則可能會給其開發出的應用,造成性能上的影響,進而撼動其市場上的地位。因此,各類開發人員除了持續努力地發現并解決,哪些直接影響到AngularJS性能的問題之外,也應不斷地在尋求改進和優化其自身應用程序的各種優秀實踐。下面,讓我們一起來談論七種常見的AngularJS優秀實踐。

1. Angular Universal

Angular Universal是一種能夠在服務器上渲染呈現Angular應用的技術。通常,普通的應用程序會在瀏覽器中被執行,并在DOM中渲染呈現出頁面,以響應用戶的各種操作。而Angular的常規方式卻是通過在服務器上執行,以生成靜態的應用程序頁面。而且,由于應用程序的渲染速度非常快,因此用戶完全可以在布局交互完成之前,就查看到它的效果。此外,用戶還可以通過Angular Universal,輕松地構建出易于SEO(搜索引擎優化)的網站。

2. ES Linting

作為一種先進且功能齊全的工具,Angular能夠檢查在應用程序、或網站開發過程中出現的各種參數。Linting工具不但能夠檢查TypeScript代碼是否存在著樣式或編程上的錯誤,而且可以檢查程序代碼是否符合規范的標準和通用的慣例。它的易讀性可以幫助新手開發人員,模塊化自己的程序代碼。此外,其特點還包括:

  • 具有各種可配置的規則,方便用戶檢查錯誤的級別,并輕松地區分不同類型的錯誤與警告。
  • 在其JSHint和JSLint中帶有一整套功能強大的默認規則,用戶可以籍此來輕松地實現各種遷移。
  • 其樣式檢查規則有助于整個團隊保持代碼的一致性。
  • 提供了可以編寫各種插件的相關工具。

3. Interceptor的使用

Interceptor workflow example

當某個自定義的邏輯被注入到HTTP的請求或響應中時,HTTP Interceptor(攔截器)會在HTTP調用之前或之后,執行這些自定義的程序邏輯。因此,我們需要將身份驗證令牌添加到每個HTTP的請求里。而且,由于此類令牌是從客戶端生成的,那么我們出于各種安全原因的考慮,需要從服務器端進行驗證。

在各種HTTP攔截器的幫助下,用戶可以添加不同的自定義邏輯,以實現記錄、身份驗證、會話與狀態管理、緩存、響應修改、URL重寫、以及給請求/響應添加時間戳等安全操作??梢哉f,這些攔截器充當了HTTP調用鉤子(hook)的作用。

4.測試覆蓋率

單元測試是驗證大規模Angular應用程序性能的最重要環節。您可以使用Angular CLI(https://dzone.com/articles/getting-started-with-angular-70),來輕松地開展測試、并采集各種覆蓋率報告。以下便是運行單元測試的命令:

  1. ng test --watch=false--code-coverage 

在編寫單元測試并成功運行之后,它會自動地生成一個文件夾。通過該文件夾里的各種報告,您可以獲悉應用程序在測試中出的相關問題。

5. Ahead of Time Compiler(AOT)

Installing AOT compiler

由于Angular應用程序是由多個組件和HTML模板所組成,而且它們難以在瀏覽器中實現迭代,因此Angular應用一般需要通過編譯器,讓應用能夠在瀏覽器中流暢地運行。通常,在瀏覽器下載和使用舊的代碼之前,Angular會通過AOT(Ahead of Time Compiler),將Angular HTML和TypeScript代碼轉換為高效實用的JavaScript代碼。

Ahead of Time Compiler是否與Just in Time相似?

在功能上,業界常認為AOT是JIT(Just in Time)的有力替代品。而在實際編碼的時候,應用程序仍然需要用到JIT編譯器。其實,AOT和JIT之間的主要區別在于:開發人員會在構建階段,使用到AOT的一整套代碼庫;而在每一次運行時(runtime),使用JIT不同的集合庫。

為何首選AOT來編譯?

客觀地說,編譯就是為了發現各種組件模板所綁定的錯誤。當我們使用JIT進行編譯時,它只會在運行時的后期發現錯誤。而顧名思義,AOT編譯器可以在構建的階段,更快地跟蹤到模板中的錯誤。這不僅節省了開發人員的時間,而且使得應用程序更加高效??梢?,AOT的優點在于:

  • 更快速的渲染。
  • 更少的異步請求。
  • 削減Angular框架的下載體積。
  • 能夠在早期就檢測出模板的錯誤。
  • 具有更好的安全性。

6. Lazy Load

通常,一個大型的應用程序是由幾個特色模塊所組成,這往往會導致用戶耗費大量的時間進行程序上的加載。而Lazy loading則能確保應用具有更快的性能、以及更好的用戶體驗。

Lazy loading允許開發人員在激活特定路由的情況下,以異步的方式加載JavaScript組件。一般而言,帶有基本功能的應用程序體積不會很大,而其對應的具有完整功能的軟件包則會比較龐大。因此,Lazy loading可以通過分步式的加載,來減少初始化的時間。

設置延遲加載的功能模塊

  • 創建功能模塊。
  • 為功能模塊創建路由模塊。
  • 配置路由。

使用延遲加載的好處

  • 僅在用戶請求時加載應用程序的其他功能部分。
  • 節約了那些僅訪問應用程序基本(優先級高的)功能的用戶時間。
  • 在不增加初始加載包情況下,能夠擴展目標應用的各種功能。

7. Polyfill

雖然Angular是被構建在最新的Web平臺標準之上,但是它無法全面地支持各種類型的新式瀏覽器。Polyfill則通過各種腳本,來滿足用戶對于不同瀏覽器的需求。用戶可以輕松地編寫出各種類型的JavaScript代碼,而無需擔心瀏覽器的兼容性與支持問題。

保持最新狀態

如今,開發人員已經可以在Angular上使用諸如:Dart、Typescript或ECMAScript 5等多種編程語言了。眾所周知,Angular 8即將被發布,而每個新版本的軟件都帶有許多針對舊版本的重新評估與改進。作為新版本的Angular,它的主包大小會減少約49.78%,運行的速度會更快,加載的時間也會更短。除了許多額外增加的功能之外,它還能提供更高效的遷移服務。因此,我們應當盡可能地采用新版本的框架,以保證Web應用的運行效率與性能。

原文標題:AngularJS Best Practices,作者:Rotan Sharma

 【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:張燕妮 來源: 51CTO
相關推薦

2023-02-14 10:37:43

API端點版本

2022-01-19 11:17:50

服務質量 QoS云服務網絡流量

2021-07-05 10:09:52

IT領導者混合工作

2024-06-07 13:04:02

2018-11-23 09:00:00

微服務微服務架構日志

2025-01-21 08:00:00

限流微服務算法

2013-01-07 10:14:06

JavaJava枚舉

2011-03-14 10:46:03

2021-06-17 09:00:00

人工智能機器學習開源

2020-10-28 09:24:05

存儲網絡協議

2023-02-20 14:31:11

2023-06-07 00:08:59

2023-11-13 11:39:19

2023-11-16 13:15:03

2020-10-29 09:00:00

Vue.jsjQuery前端

2025-05-13 08:20:58

2022-11-21 12:06:04

2020-01-14 08:00:00

.NET緩存編程語言

2022-05-10 08:08:01

find命令Linux

2010-10-15 10:02:01

Mysql表類型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线中文 | 国产91精品久久久久久久网曝门 | 成人一区av偷拍 | 亚洲一区欧美一区 | 成人免费三级电影 | 午夜精品视频一区 | 国产高潮好爽受不了了夜色 | 免费观看视频www | 精品亚洲视频在线 | 国产精品一区在线 | 二区av | 精品一二三区 | 天天天插| 在线亚洲一区二区 | 国产成人99 | 久久视频免费看 | 日韩欧美操| 午夜欧美一区二区三区在线播放 | 久久久无码精品亚洲日韩按摩 | 国产免国产免费 | 久久成人激情 | 欧美一级二级视频 | wwwsihu| 在线高清免费观看视频 | 伊人超碰 | 亚洲成年影院 | 天天操,夜夜爽 | 国产成人免费视频 | a黄视频| 精品国产一区二区在线 | 国产综合第一页 | 一本综合久久 | 久久网一区二区三区 | 国产一区91精品张津瑜 | 青青草原精品99久久精品66 | 一级黄色片一级黄色片 | 男人亚洲天堂 | 日韩久久久久 | 全部免费毛片在线播放网站 | 狠狠干狠狠操 | 午夜www|