0

我有一个从本地数据填充的 jqGrid (v4.5.2)。每当我尝试使用buildGrid()下面的函数卸载网格并用新数据重新填充它时,IE8 中的内存就会跳跃。这样做大约 15 倍后,内存从 ~80,000K 增加到 ~350,000K。我的用例要求在不刷新浏览器的情况下将此网格刷新 > 150 倍。

这是一个非常简单的网格。这是我构建它的功能:

<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'   
    });

}

我尝试清除和刷新网格的方式有问题吗?

4

1 回答 1

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'
    });

}

这有助于控制内存。我会看看我是否在下游遇到任何其他问题。

于 2013-10-04T14:35:57.790 回答