2012-02-07 68 views
0

我們有一個跨越126行和11列的網格。網格可以編輯大約一千個文本框(我瞭解糟糕的設計,但認真的客戶是堅定的)。 因此,在這些文本框中,我們調用jQuery自定義函數來計算網格長度和寬度的總和和乘法。 自定義方法應用於組中的兩行或三行以提供小計和總計。 由於生成的腳本數量巨大,頁面顯着變慢。從本質上講,意味着當我在文本框中輸入任何數字時,至少需要2秒才能回覆並在指定的文本框中填充結果。在gridView上應用jQuery會降低性能

我們使用.live()方法,因爲網格在UpdatePanel中。 任何幫助優化可怕的表現是非常必要的,將高度讚賞。

回答

0

首先,下面的一切都是猜測。您是否分析了該頁面以查看瓶頸所在?有沒有公​​開的網址,我們可以看到這在實際中?

通過切換到.delegate().on()來附加事件,可能會有一些小改進。將活動儘可能貼近網格。我懷疑這會幫助很多。

基本上,這聽起來像你試圖實現電子表格,所以我會建議電子表格使用相同的技術。使用依賴關係圖確定單元格更改時確實需要重新計算的內容。存儲不經常更改的事物的中間結果。而不是嘗試一次重新計算所有內容,請使用setTimeout一次計算網格的幾行。

+0

非常感謝戴夫,你說得對,我們實際上是在實施一種電子表格。你能指點我的依賴關係圖資源的鏈接,我可以找到一些提示或教程這個問題。而且我們使用的是jQuery 1.6.2,所以是的,我們嘗試了.delegate(),但似乎網格太大,沒有任何幫助。 .on是爲jquery 1.7+ – Bilal 2012-02-09 16:39:04

+0

我不知道有什麼好的參考資料;我曾經與微軟內部的Excel團隊交談,這是我獲得基本信息的地方。 :)但是,您應該能夠查看錶單並確定哪些字段會根據其他字段進行更改。所以如果有多個subtotaled子表單,請記住小計,只重新計算實際更改的子表單。 – 2012-02-10 16:45:51