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 に答える