3
當在<select>
中顯示多個項目時,我遇到AngularJS性能問題。我創建了一個小提琴哪裏出了問題可以看出:選擇的AngularJS性能
選擇一個項目需要幾秒鐘。
有趣的是,這個問題只發生在第一次選擇一個項目時。之後,選擇一個項目很快。
爲什麼?什麼導致了這種緩慢?有沒有解決方法?
當在<select>
中顯示多個項目時,我遇到AngularJS性能問題。我創建了一個小提琴哪裏出了問題可以看出:選擇的AngularJS性能
選擇一個項目需要幾秒鐘。
有趣的是,這個問題只發生在第一次選擇一個項目時。之後,選擇一個項目很快。
爲什麼?什麼導致了這種緩慢?有沒有解決方法?
我相信「爲什麼」和「這是什麼」是由於Angular用於通過髒檢查呈現內容的方法。這是一個更深入的答案:How does data binding work in AngularJS?。此外,在Angular文檔中還有一些關於範圍渲染的有用信息,可能會爲您更詳細地瞭解它。 https://docs.angularjs.org/guide/scope。
@Blackhole:謝謝,你說得對。現在應該是正確的。 –
速度很慢,因爲$ scope正在監視您創建的所有25,000個選項,以查看是否有任何選項已更改。我相信有一種方法可以停止看他們,但我不知道如何。查閱$ digest和$ watch。 這是一個現實的場景 - 你將有一個下拉25K選項?如果是這樣,願上帝憐憫你的靈魂。 :) – Adam
不,25k現在是不現實的,但2.5k是我在我的應用程序中的項目數。我在小提琴中增加了25k,所以請說清楚,以便清晰可見。對我來說,2.5k會導致一個明顯的滯後,這非常煩人。 –