MVC PartialViewResult包含附加的JavaScript函数调用,导致内存泄漏

MVC PartialViewResult包含附加的JavaScript函数调用,导致内存泄漏,javascript,ajax,asp.net-mvc-3,jquery-1.10,Javascript,Ajax,Asp.net Mvc 3,Jquery 1.10,我有一个包含HTML表的MVC视图。在该表中,单元格包含附加到复选框的onclick事件,以及绑定到输入框的onchange事件。它们与.js文件中的标准JavaScript函数调用相关联 <input type="text" id="changeActualTimeBox{'0'}" onchange="ChangeStartTime()"> 当这些单元格中发生更改时,我通过POST方法调用关联的jQueryAjax函数,并返回包含更新的html和新模型数据的PartialV

我有一个包含HTML表的MVC视图。在该表中,单元格包含附加到复选框的onclick事件,以及绑定到输入框的onchange事件。它们与.js文件中的标准JavaScript函数调用相关联

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

当这些单元格中发生更改时,我通过POST方法调用关联的jQueryAjax函数,并返回包含更新的html和新模型数据的PartialViewResult。新的html表(partialView)在td标记中每行大约包含10个JavaScript事件。如果用户调出不同的日期,内存会增加2mb或更多,具体取决于返回的表的大小,最多可能有200行数据

我注意到,每次检索新数据时,都会有大量的脚本块函数堆积在一起,这些函数永远不会从内存中释放出来。有没有办法使用jQuery并完全消除JavaScript调用,而不是像我这样附加onclick和onchange函数?

您可以使用jQuery on()方法,而不是附加onclick和onchaneg函数

例如:

<div id="partial-view-container">
    @{Html.renderPartial("ViewName");}
</div>
顺便说一句,您应该使用ajax调用替换整个表,如果您替换整个partialview,则不会导致memroy泄漏

您还可以尝试分页以减少渲染的数据并加快加载时间

<input type="text" id="time">
$('#partial-view-container').on('change','#time',function(){
     //do what you want here
     // ajax call
});