2013-10-29 41 views
0

我的問題是關於如何在具有數百個動態JS元素的頁面上實現性能。JQuery vs數百個價值滑塊的角度實現

我有一個頁面可以加載700個食物。每個食品都有一個選擇框,可以選擇測量(例如麪包和麪包片),數值滑塊和顯示所選值的輸出*測量的重量。每個項目也有一個「最喜歡的」複選框。如果選中此項,該項目將被複制到「收藏夾」列表中。 「收藏夾」列表中的項目的值輸入在下面的原始食物項目中「鏡像」,以便如果移動「收藏夾」滑塊,原始項目的滑塊將同時移動。

這裏是我的意思文本草圖:

//Favourites 
(*) Bread (slice/loaf) (slider) [output] 

//Food items 
(*) Bread (slice/loaf) (slider) [output] 
() Potatoes (mashed/boiled/fries) (slider) [output] 

我實現了這一切與jQueryUI的滑塊&一些雜七雜八jQuery來觀看的選擇框&複選框的值。毫不奇怪,一旦有700個這樣的東西被加載,DOM就像一扇門。我需要更好的解決方案。

是否有可能在AngularJS中實現所有這些行爲會改善性能?

+0

使用輸入類型=範圍,與文本框相比,它對性能沒有額外的影響。你可以回退到現在的舊版瀏覽器...... – dandavis

+0

每次向用戶顯示700個項目聽起來不太方便用戶。另一件事可能會考慮只使用一個滑塊,並讓它在用戶懸停項目父項時更改其值。可按需要使用滑塊 – charlietfl

+0

您所做的任何更改都可能會影響性能。這是一個愚蠢的問題。找出減速發生的準確位置,很可能是您使用的效率非常低下的選擇器或事件。我angularjs可以有效地做到這一點,所以可以jQuery。他們都只是JavaScript。 –

回答

2

這聽起來不像是一個很好的主意,在一個頁面上有700個任何東西......對於使用它的人來說,這可能是一個可怕的混亂。所以,我首先建議重新考慮這個計劃。這就是說,在我的緩慢和過時的筆記本電腦上,this angular example (click)運行得很好。它有700個輸入,每秒都在改變它們的值。雖然我不推薦它,但我認爲只要保持一切高效,就可以完成。進一步思考,真正的低效率是頁面上有700個項目開始。根據需要加載項目(滾動,分頁,搜索等)使得更多的意義,是常見的解決方案。