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

AngularJS的七種常見優(yōu)秀實(shí)踐

譯文
新聞 前端
針對Web應(yīng)用的開發(fā)與性能,本文介紹了七種有關(guān)AngularJS的常見優(yōu)秀實(shí)踐。

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

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

1. Angular Universal

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

2. ES Linting

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

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

3. Interceptor的使用

Interceptor workflow example

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

在各種HTTP攔截器的幫助下,用戶可以添加不同的自定義邏輯,以實(shí)現(xiàn)記錄、身份驗(yàn)證、會話與狀態(tài)管理、緩存、響應(yīng)修改、URL重寫、以及給請求/響應(yīng)添加時間戳等安全操作。可以說,這些攔截器充當(dāng)了HTTP調(diào)用鉤子(hook)的作用。

4.測試覆蓋率

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

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

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

5. Ahead of Time Compiler(AOT)

Installing AOT compiler

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

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

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

為何首選AOT來編譯?

客觀地說,編譯就是為了發(fā)現(xiàn)各種組件模板所綁定的錯誤。當(dāng)我們使用JIT進(jìn)行編譯時,它只會在運(yùn)行時的后期發(fā)現(xiàn)錯誤。而顧名思義,AOT編譯器可以在構(gòu)建的階段,更快地跟蹤到模板中的錯誤。這不僅節(jié)省了開發(fā)人員的時間,而且使得應(yīng)用程序更加高效。可見,AOT的優(yōu)點(diǎn)在于:

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

6. Lazy Load

通常,一個大型的應(yīng)用程序是由幾個特色模塊所組成,這往往會導(dǎo)致用戶耗費(fèi)大量的時間進(jìn)行程序上的加載。而Lazy loading則能確保應(yīng)用具有更快的性能、以及更好的用戶體驗(yàn)。

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

設(shè)置延遲加載的功能模塊

  • 創(chuàng)建功能模塊。
  • 為功能模塊創(chuàng)建路由模塊。
  • 配置路由。

使用延遲加載的好處

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

7. Polyfill

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

保持最新狀態(tài)

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

原文標(biāo)題:AngularJS Best Practices,作者:Rotan Sharma

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

 

責(zé)任編輯:張燕妮 來源: 51CTO
相關(guān)推薦

2023-02-14 10:37:43

API端點(diǎn)版本

2022-01-19 11:17:50

服務(wù)質(zhì)量 QoS云服務(wù)網(wǎng)絡(luò)流量

2024-06-07 13:04:02

2021-07-05 10:09:52

IT領(lǐng)導(dǎo)者混合工作

2018-11-23 09:00:00

微服務(wù)微服務(wù)架構(gòu)日志

2025-01-21 08:00:00

限流微服務(wù)算法

2013-01-07 10:14:06

JavaJava枚舉

2011-03-14 10:46:03

2020-10-28 09:24:05

存儲網(wǎng)絡(luò)協(xié)議

2021-06-17 09:00:00

人工智能機(jī)器學(xué)習(xí)開源

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

2022-05-10 08:08:01

find命令Linux

2020-01-14 08:00:00

.NET緩存編程語言

2016-03-16 10:39:30

數(shù)據(jù)分析數(shù)據(jù)科學(xué)可視化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美激情一区二区三级高清视频 | 蜜臀网 | 久久大香 | 国产精品1区 | 日韩欧美在线播放 | 久久久久国产一区二区三区 | 国产精品视频在线播放 | 精品亚洲一区二区 | 久久99国产精一区二区三区 | 欧美一级视频免费看 | www.99热这里只有精品 | 中文字幕亚洲欧美 | 国产精品毛片久久久久久 | 黄色av观看 | 国产乡下妇女做爰 | 免费午夜视频 | 久久亚洲综合 | 污片在线观看 | 欧美日韩国产一区二区三区 | 午夜在线电影网 | h视频在线观看免费 | 色天堂影院 | 国产伦精品一区二区三区高清 | 久久久精品一区 | 久久国色 | 日韩不卡一二区 | 人人人人干| 国产精品视频 | 国产 日韩 欧美 在线 | 欧美aaa| 欧美不卡视频一区发布 | 亚洲精品中文在线观看 | 午夜一区二区三区在线观看 | 日韩精品一区二区久久 | 日本在线观看视频 | 久久精品小视频 | 天堂一区二区三区 | 欧美一区二区免费 | 精品国产一区二区三区久久久四川 | 精品国产免费一区二区三区演员表 | www.com久久久 |