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

时间:2014-03-06 13:14:19

标签: javascript ajax asp.net-mvc-3 jquery-1.10

我有一个包含HTML表的MVC视图。在该表中,单元格包含附加到复选框的onclick事件,以及与输入框关联的onchange事件。它们与.js文件中的标准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调用?

1 个答案:

答案 0 :(得分:0)

您可以使用jquery on()方法而不是附加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泄漏

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