2014-03-06 18 views
0

我有一個包含HTML表的MVC視圖。在該表中,單元格包含附加到複選框的onclick事件,以及與輸入框關聯的onchange事件。這些綁定到.js文件中的標準JavaScript函數調用。MVC PartialViewResult包含附加的JavaScript函數調用,導致內存泄漏

<input type="text" id="changeActualTimeBox{'0'}" onchange="ChangeStartTime()"> 

當變化在那些我請通過POST方法相關聯的jQuery AJAX功能,並返回包含更新的HTML和新模型數據PartialViewResult細胞發生。新的html表(partialView)在td標籤中每行大約包含10個JavaScript事件。如果用戶拉起不同的日期,內存增加2mb或更多,這取決於返回的表的大小,可能高達200行數據。

我注意到,每次檢索新數據時都會堆積大量的腳本塊功能,這些功能永遠不會從內存中釋放。而不是像我一樣附加onclick和onchange函數,有沒有辦法使用jQuery並完全消除JavaScript調用?

回答

0

可以在()方法使用jquery代替附加的onclick和onchaneg功能

實施例:

<div id="partial-view-container"> 
    @{Html.renderPartial("ViewName");} 
</div> 

在你PartialView

<input type="text" id="time"> 

Jquery的在主視圖

$('#partial-view-container').on('change','#time',function(){ 
    //do what you want here 
    // ajax call 
}); 

順便說一句,你應該使用AJAX調用替換整個表,它不應該引起memroy泄漏如果更換整個partialview

您也可以嘗試分頁,以減少您呈現的數據和加快加載時間