2013-10-04 49 views
0

我有一個jqGrid的(v4.5.2)是從本地數據填充。每當我嘗試卸載電網和新的數據重新填充它,使用下面的buildGrid()功能,IE8內存跳躍。大約15倍後,內存從大約80000K增加到大約350000K。我的用例要求這個網格刷新大於150x而不刷新瀏覽器。內存與jqGrid的跳躍刷新

這是一個非常簡單的網格。這裏是我的功能來構建它:

<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

只有1-2K記錄。它們是'localData [lot]'中的對象的集合。基本上我的用戶滾動瀏覽這些對象,當他們到達一個新的對象時,我刷新網格。如果我註釋掉網格,內存保持不變。 – Paul

回答

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

} 

這有助於控制內存。我會看看我是否遇到下游的任何其他isses。