Wydajność renderowania JQGrid
Mamy problemy z wydajnością renderowania JQgrid. Proszę doradź.
JQGrid v4.3.2, jquery-1.7.2.min.js, jquery-ui-1.8.1.sortable.min.js, jquery-ui-1.8.20.custom.min.js Przeglądarka: IE6,7
Każdy użytkownik ma dane w 2 siatkach - akcje i fyi. Typowy zakres danych wynosi ~ 300 wierszy w każdej siatce. Lista kolumn może się różnić dla grup użytkowników, dlatego struktura colModel jest dynamiczna. Po uzyskaniu danych stosujemy style warunkowe do każdego wiersza (aby je pogrubić lub nie itd.) I zmienić formatowanie liczb.
Przykładowy kod dla siatki jest następujący:
jQuery('#ActionItems').jqGrid({
url: 'http://actionsurl',
mtype: 'GET',
datatype: 'json',
page: 1,
colNames: actionsColNames,
colModel: actionsColModel,
viewrecords: true,
loadonce: true,
scrollrows: false,
prmNames: { id: "PrimaryID" },
hoverrows: false,
jsonReader: { id: "PrimaryID" },
sortname: 'CreateDt',
sortorder: 'desc',
gridComplete: function () {
fnActionsGridComplete();
},
recordtext: "Displaying {1} of {2} Records",
emptyrecords: "No data to view",
emptyDataText: "No data found.",
loadtext: "Loading...",
autoWidth: true,
rowNum: 1000,
grouping: true,
groupingView: groupingViewOp
});
Kod formatujący w fnActionsGridComplete ():
Ustaw szerokości kolumn w%Iteruj wiersze thru, aby zastosować warunkowe style css
$("#Actions").find("tbody tr").each(function () {
if ($(this)[0].id != '') {
var data = $(this).find('.IsItemNew').html();
if(data == "Y") {
$(this).css("fontWeight", "bold");
}
}
});
Formatowanie dla konkretnych kolumn.Obecnie mamy problemy z wydajnością dla> 200 wierszy danych w dowolnej sieci. Po analizie stwierdziliśmy, że formatowanie i renderowanie zajmuje najwięcej czasu.
Czy możesz zaproponować tutaj optymalny sposób na poprawę wydajności. (stronicowanie nie jest nie)
Pozdrawiam, Rajani
- Zrobiliśmy testy na IE9 i znacznie lepiej. Ale użytkownicy nie mogą natychmiast uaktualnić.