easyUI之datagrid大數據量加載慢的原因之我見


最近項目中使用了easyUI這個js展現層,說實話,展示效果還算不錯,使用上也比較方便,但是讓我頭疼的就是datagrid的這個控件。

它的使用起始非常簡單方便,而且提供的功能也比較全面,但是美中不足的就是,該控件在加載比較大的數據量時,渲染速度有點難以承受。

網上找了相關的解決方案,無外乎就是使用view。

view這個東西說實話的確能起到改善datagrid的加載速度的問題,但是缺陷也比較多,網上有該缺陷描述,本人不在此說了。

還有一個提到的方案,就是修改

jquery-easyui-min-1.3.6.js

第9272行

將循環內的代碼注釋掉

即:

var tr1 = $(trs1[i]);

var tr2 = $(trs2[i]);

tr1.css("height", "");

tr2.css("height", "");

var _530 = Math.max(tr1.height(), tr2.height());

tr1.css("height", _530);

tr2.css("height", _530);

 

這個方法我已經測試過,無效。

以下為個人觀點:

最終發現,datagrid的列有一個屬性,[width],對應的描述是

屬性名稱 屬性值類型 描述 默認值
width number 列的寬度。如果沒有定義,寬度將自動擴充以適應其內容。 undefined

如果列的width屬性沒有設置數值,那么就會自動計算寬度數值,這可是一個循環遍歷的過程,要計算每一個列的寬度,並且還需要在所有數據行中取最大值來作為最終該列寬度數值

問題原因找到了,於是乎在設置datagrid列表的列時,將每列width屬性進行數值設定,再次加載數據,以前加載600條數據大概需要140秒,

現在加載600條數據21秒,雖然還是非常慢,但是找到了一個導致datagrid加載速度緩慢的原因。不知道對大家有幫助沒。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM