我有一个包含HTML表的MVC视图。在该表中,单元格包含附加到复选框的on Click事件,以及与输入框绑定的Onchange事件。这些与.js文件中的标准JavaScript函数绑定。
<input type="text" id="changeActualTimeBox{'0'}" onchange="ChangeStartTime()">
当这些单元格发生在这些单元格中时,我将通过后方法称为关联的jQuery ajax函数,然后返回包含更新的HTML和新模型数据的部分视图。新的HTML表(PartialView)在TD标签中每行大约包含10个JavaScript事件。如果用户提高了不同的日期,则内存会根据返回的表格大小增加2MB或更多,最多可能是200行数据。
我注意到,每次我检索新数据时,都会堆叠许多脚本块功能,这些脚本功能永远不会从内存中释放出来。与其按照我的方式附加onClick和onchange功能,不如说是使用jQuery并完全消除JavaScript调用的方法?
您可以在()方法上使用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调用替换整表,如果您更换整个PartialView
您也可以尝试分页以减少渲染的数据并加快加载时间