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

AngularJS開發工作當中必須避免的十種常見錯誤

譯文
開發 前端
其中一部分錯誤會引發Web開發人員最不希望看到的結果。而只要大家在開發工作當中考慮到這些問題的存在并加以解決,那么很多錯誤將根本不會出現,這也就免除了我們被迫從頭開始重新進行代碼編寫的可能性。

AngularJS是很多Web開發人員在打造單頁面應用程序時的***創建方案。必須承認,無論開發哪一種應用程序類型,團體以及個人開發人員都將不可避免地面臨一系列挑戰,不過使用AngularJS將大大降低整個流程的實現難度。在AngularJS的幫助下,大家將能夠充分享受單頁面應用程序開發與測試的過程,因為其提供的框架囊括了客戶端模型-視圖-控制器以及開發端模型-視圖-視圖模式。另外,它還提供大量其它功能組件,足以幫助用戶創建出富互聯網應用程序。

[[158541]]

然而盡管開發人員對于AngularJS已經相當熟悉,但仍有很多潛在錯誤在不知不覺中給應用構建工作帶來負面影響。不過只須遵循幾項預防措施,我們就完全能夠對其加以規避。下面來看最為常見的幾種AngularJS錯誤:

1.在AngularJS當中不顧實際情況,一味利用匿名函數進行聲明

請始終將自己的對象及函數分配給特定變量。通過這種方式,大家會發現控制與變更工作會變得更加輕松,代碼本身也會更加整潔且易于查閱。另外,大家能夠在不同文件當中對代碼進行輕松拆分,而這一點對于應用程序的后續維護而言非常重要。

與此同時,這種作法對于保障可測試性也有著重要意義;當聲明關系較為明確性,代碼的測試工作將變得非常簡單。作為開發人員,大家應當讓自己的代碼更加直觀且易于理解,而這一切都將在長久的工作周期中帶來回報。總而言之,遵循這一原則將幫助各位顯著降低錯誤數量并帶來諸多收益。

2.未使用$applyAsync

由于在AngularJS當中調用$digest()不存在輪詢機制,因此其只會執行現有指令。$applyAsync則能夠幫助我們有效延遲表達式解析,直到下一個$digest()周期的來臨。大家可以選擇以手動或者自動方式使用$applyAsync。

3. 使用jQuery

在處理事件以及實現AJAX操作時,jQuery已經成為一套能夠顯著降低DOM操作難度的庫選項。但在另一方面,AngularJS的設計初衷在于提供一套能夠創建可擴展性應用程序的框架。其主要關注側重在于應用程序的開發與測試環節,因此其無法被用于在HTML頁面中實現擴展。換言之,在這種情況下我們并不需要使用jQuery。這時大家的理想選擇應該是讓自己的代碼在進行聲明之后超越HTML語法。

AngularJS在這方面擁有多項功能可供選擇,開發人員應該能夠從中找到最理想的實現方案,而非一味使用jQuery。如果大家必須要進行DOM操作,那么在指令中直接實現即可——而并不一定需要涉及jQuery。

4.未對應用程序進行優化

缺乏必要優化幾乎必然會引發AngularJS錯誤。以下示例解釋了控制器中的代碼如何拖慢處理速度并導致潛在錯誤:

 

  1. this.maxPrice = '100';   
  2. this.price = '55’; 
  3. $scope.$watch('MC.price', function (newVal) { 
  4. if (newVal || newVal === 0) { 
  5. for (var i = 0; i < 987; i++) { 
  6. console.log('ALL YOUR BASE ARE BELONG TO US'); 
  7. }); 

 

作為解決方案,我們可以嘗試在輸入內容中添加一項超時。

5.在非必要情況下使用scope隔離

如果大家希望使用一條指令,且確保其只被應用于單一位置且不會在環境中引發其它意料之外的沖突,那么其實并不一定要使用scope隔離機制——這有可能反而造成錯誤。在這里需要強調的是,我們無法在單一元素當中同時使用兩條scope隔離指令。另外,在進行嵌套、事件處理或者繼承等操作時,scope隔離也有可能引發問題。

6. 使用過多觀察程序

對于每一次聯編,AngularJS都會為其創建一個觀察程序。而在每個digest階段,觀察程序都會與之前的聯編進行對比與評估,AngularJS將這一過程稱為臟檢查。大家可以想象一下,當這一系列流程結束之后,最終會剩下多少觀察程序。

其實約束觀察程序數量的辦法非常簡單,大家只需要在確定scope模型不會發生變更的情況下不對其進行觀察即可。這意味著觀察程序數量將大幅減少,而由此引發錯誤的機率也會顯著降低。

7.忽視controllerAs語法

$scope常常被用于將某個模型分配至某個控制器對象。不過在這種情況下,注入scope一般并不是最理想的處理方式。相反,我們推薦大家選擇controllerAs語法來實現這一目標。下面通過代碼共同了解如何利用controllerAs語法進行模型定義:

 

  1. function MainController($scope) { 
  2. this.foo = 1
  3. var that = this
  4. var setBar = function () { 
  5. // that.bar = {someProperty: 2}; 
  6. this.bar = {someProperty: 2}; 
  7. }; 
  8. setBar.call(this); 
  9. // there are other conventions: 
  10. // var MC = this; 
  11. // setBar.call(this); when using 'this' inside setBar() 

 

controllerAs語法能夠顯著改善結果混亂的狀況,特別是在我們需要處理大量嵌套scope的情況下。它還能夠以多種其它方式加以運用,從而幫助我們更輕松地實現應用程序構建。

8. 負載強度過大

很多Web開發人員傾向于在AngularJS當中使用大量高強度處理線程,而克服這一壞習慣之后,我們可以使用工作線程并避免由高強度處理任務帶來的諸多錯誤。高強度處理任務可能導致瀏覽器陷入卡死。工作線程是解決這類問題的好辦法,我們只需要直接使用工作線程機制即可,其能夠顯著降低大規模復雜對象的處理難度。

9.未能根據需要使用controllerAs語法

controllerAs語法具備極高的實用性,而且能夠幫助大家在構建應用程序時擁有更出色的代碼成果。當下開發人員的常見錯誤之一就是未能對其加以充分運用并發揮其巨大潛能。事實上,當我們將某套模型分配至某控制器工具時,controllerAs語法應當是***的實現機制。它還擁有一系列其它高實用度功能。下面通過代碼示例一起了解:

 

  1. function MainController($scope) { 
  2. this.title = 'Some title'
  3. $scope.$watch(angular.bind(this, function () { 
  4. return this.title; 
  5. }), function (newVal, oldVal) { 
  6. // handle changes 
  7. }); 

 

10. 未能充分理解解析器

基本上,解析器的介入會增加我們在載入視圖時的實際時間。大家不應過度使用解析器,因為這意味著網站的加載時間會因此延長,并最終導致令人難以忍受的訪問體驗。

其中一部分錯誤會引發Web開發人員最不希望看到的結果。而只要大家在開發工作當中考慮到這些問題的存在并加以解決,那么很多錯誤將根本不會出現,這也就免除了我們被迫從頭開始重新進行代碼編寫的可能性。

原文標題:10 Mistakes to Avoid on AngularJS

責任編輯:王雪燕 來源: 51CTO
相關推薦

2019-10-08 09:00:00

MySQL數據庫

2023-08-18 14:36:00

ChatGPT人工智能

2015-09-15 10:42:06

2020-01-10 09:00:00

開發者編程習慣編程方式

2018-09-25 23:21:13

2023-07-19 11:19:37

AI項目人工智能

2025-04-24 08:50:00

軟件架構架構軟件系統

2017-07-03 09:15:07

2010-11-09 10:43:14

面試

2013-06-13 09:07:53

網吧網絡協議ipv6

2022-09-25 23:34:42

算法回歸算法機器學習

2024-01-18 08:21:55

2024-03-26 09:34:23

.Net開發內存管理內存泄漏

2016-03-18 07:21:56

網站體驗設計錯誤

2022-10-25 15:55:13

2023-01-31 09:31:46

IT領導趨勢

2021-11-06 14:10:23

安全基礎勒索軟件攻擊

2025-03-18 14:27:35

2023-07-14 14:25:00

Python語言錯誤

2025-04-07 11:20:00

KubernetesPodPod容器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕欧美在线观看 | 亚洲美乳中文字幕 | 久久久久久网 | 浮生影院免费观看中文版 | 国产欧美精品一区二区三区 | 精品欧美一区二区三区 | 黄色三级毛片 | av黄色在线 | 国产一区二区在线播放 | 99久久婷婷国产精品综合 | 免费在线一区二区 | 在线观看日本高清二区 | 国产精品一区二区在线 | 久久久激情 | 久久九九网站 | 一二区成人影院电影网 | 久久国产精品一区二区三区 | 在线中文字幕视频 | 成人在线视频网站 | 黄免费观看视频 | 在线观看国产 | 精品国产31久久久久久 | 精品国产乱码久久久久久中文 | 特级生活片| a在线观看免费 | 精品一区在线免费观看 | 亚洲国产精品久久久久久 | 永久精品| 亚洲视频在线播放 | 欧美日韩在线精品 | 九九99精品 | 国产色视频网站 | 91偷拍精品一区二区三区 | 一a级片 | 一区二区三区av | 欧美一区二区三区电影 | 国产精品久久影院 | 日韩视频精品 | 91九色网站 | 日韩一区二区三区视频 | 欧美一区二区三区久久精品视 |