2014-04-18 46 views
1

我一直在Angular開發一點,並熱愛它。我確實瞭解數據綁定的性能影響,並使用綁定一次插件和其他手段來最小化手錶等。AngularJS何時會變得更快?

但是,我想知道如果,如何以及何時Angular應用程序將變得更快?我的意思是,所有事情的表現幾乎相同或與非聲明性框架相當。

這是瀏覽器追趕聲明模型的問題嗎? 目前是否有任何瀏覽器有任何計劃?

這是EcmaScript 6或更高版本最終支持原生「觀察」變量的問題。 (希望嗎?)

還是會認爲花費太長的時間和角度本身需要以某種巧妙的方式來提高(從角隊的計劃?)

當然最終的瀏覽器和一般的計算機變得更快,但角度表現有什麼新的展望?

回答

1

的方式我認爲,對於綁定/改變監聽等。 ,有3個可能的優化領域:

  1. 調整範圍的手錶/綁定的特殊情況:

這包括例如bindonce或特定的數據結構,如$ watchGroups,這就好比一個手錶的兩個或更多屬性(https://github.com/angular/angular.js/pull/7158)的優化。這些都是基本上任何人都可以實施和提出的變化,但是他們對核心團隊沒有很高的優先級(雖然他們正在研究類似功能的綁定)。

  1. 提高一般變化檢測/應用架構

在angularjs 2.0,範圍變化檢測算法會比現在(http://blog.angularjs.org/2014/03/angular-20.html)快得多。我看到的結構中的另一個重大改進是批量更新DOM。

  1. 瀏覽器功能

Object.observe()是監聽中的對象變化的標準方法。它目前尚未被所有主流瀏覽器支持,因此目前還無法使用。 (1)中最有希望的領域是(2),因爲一般體系結構的變化將包含或過時的變化。我認爲角度2.0的公開alpha最早將在年底發佈。

+0

上點,謝謝! – parliament

1

你問了很多if/theory的問題。角度和你做的一樣快。性能與應用程序的開發方式直接相關。我在一個有50多個控制器的項目上工作,這個項目有嚴重的性能問題,因爲我們在一張桌子上處理了100,000多條記錄。只需對我們的決策做出明智的決定,我們就可以從多秒的交易中獲得分類和過濾到60毫秒。綁定一次只是性能難題的一部分。你真的需要看看你的手錶。火焰圖是一個很好的工具。我在Coderwall.com上寫了一個關於它的專業提示: https://coderwall.com/p/nsanaa?i=1&p=1&q=author%3Abreck421&t%5B%5D=breck421

此外,您還需要關注您的DOM操作(ng-repeat是緩慢的)。

布賴恩·福特只是做了一個閃電談這個話題:

https://github.com/breck421/brian-talks-about-angular-with-lots-of-data

希望這有助於

喬丹