我有一个从本地数据填充的jqGrid(v4.5.2)。每当我尝试卸载网格并使用新数据重新填充它时,使用下面的buildGrid()
函数,IE8中的内存会跳转。这样做大约15倍后,内存从~80,000K增加到~35万K。我的用例要求刷新此网格>没有浏览器刷新的150x。
这是一个非常简单的网格。以下是我构建它的功能:
<table id="lpInfoGrid"><tr><td/></tr></table>
<div id="lpInfoGridPager"></div>
var jqGridObj;
function buildGrid(lot) {
if (jqGridObj) {
jqGridObj.jqGrid('GridUnload');
jqGridObj = null;
}
jqGridObj = $("#lpInfoGrid").jqGrid({
data: localData[lot].Info,
datatype: "local",
colNames: [...],
colModel: [...],
viewrecords: true,
gridview: true,
pager: '#lpInfoGridPager'
});
}
我试图清理和刷新网格的方式有问题吗?
答案 0 :(得分:0)
我似乎有更好的运气使用reloadGrid
功能。由于其他参数是相同的:
var jqGridObj = null;
function buildGrid(lot) {
if (jqGridObj != null) {
$('#lpInfoGrid').setGridParam({
data: localData[lot].Info,
datatype: 'local'
}).trigger('reloadGrid');
return true;
}
jqGridObj = $('#lpInfoGrid').jqGrid({
data: localData[lot].Info,
datatype: 'local',
colNames: [...],
colModel: [...],
viewrecords: true,
gridview: true,
pager: '#lpInfoGridPager'
});
}
这有助于控制内存。我会看到我是否遇到了下游的任何其他问题。