MVC에 테이블 뷰를 출력하는 애플리케이션을 작성하고 있습니다. 테이블의 열 중 하나에는 jQuery UI 대화 상자를로드하는 액션 링크가 포함되어 있습니다. 대화 상자에서 데이터를 저장할 때 새로 저장된 데이터를 잡아서 새로운 부분 뷰 html로 그리드를 다시 그리기 위해 ajax를 통해 부분 뷰를 반환하는 GridRefresh 컨트롤러 메서드를 호출합니다. $ ('# mainGrid') .html (data) jQuery 호출을 사용하여 페이지의 html을 덮어 씁니다. 이 호출은 Div의 내용을 올바르게 대체해야하므로 RefreshGrid 함수가 호출 될 때마다 4MB의 누수가 발생합니다. .empty(), .remove(), .replaceWith(), jQuery.fragments 지우기, javascript (getElementById)를 사용하여 div 요소 지우기 등과 같은 온라인 기사에서 수 많은 수정 사항을 시도했습니다. 아무것도 작동하는 것 같습니다.jQuery 메모리 누수로 MVC 부분 뷰를 반환
참고 : HTML보기의 응답 데이터 크기는 약 1.2MB이며 크기가 내 문제를 일으킬 수 있습니까? 내가 jQuery를의 1.10.2와 IE9와
MVC 컨트롤러을 MVC3을 사용하고
[HttpPost]
public PartialViewResult RefreshGrid(DateTime effectiveDate, String searchVal)
{
if (Request.IsAjaxRequest())
{
var gridModel = new GridModel();
LoadGridDataFromDB(effectiveDate,searchVal);
return PartialView("Grid", gridModel);
}
return null;
}
아약스/jQuery를
$.ajax({
url: "Home/RefreshGrid",
type: "post",
data: {
effectiveDate: effectiveDate,
searchVal: searchVal
},
dataType: "html",
success: function(data){
alert("success");
$("#mainGrid").html(data);
},
error:function(){ alert("failure");}
});
바실, 나는 모든 클라이언트 브라우저를 말할 수있는 방법 방법을 사용하여 새로 고침하려면? – codeg
InsertionMode = InsertionMode.Replace 이것은 수신 된 데이터와 정확히 무슨 상관이 있는지를 MVC에 알려주는 옵션입니다. 이 경우 사용 블록에있는 모든 내용이 응답으로 대체됩니다. 다른 옵션은 InsertionMode.InsertAfter 및 InsertionMode.InsertBefore입니다. –
올바른 답을 제공했다고 믿습니다. jQuery UI 대화 상자에서 저장 버튼을 클릭하면 MVC가 각 컴퓨터에서 그리드를 업데이트하도록 지시하는 방법 밖에 없습니다. MVC 애플리케이션을 실행하고 있습니까? – codeg