问题描述
|
我浏览了各个论坛,试图找到解决我问题的方法,但是找不到类似的东西。虽然我看到了很多内存泄漏问题,但仍然找不到要解决的问题。我也是jquery的新手。
因此,我有一个.net mvc页面,该页面查询数据库并每3秒刷新一次div。我注意到它一直在消耗内存,一旦达到1GB内存,它最终就会崩溃。我正在使用IE8。这是页面:
<script type=\"text/javascript\">
var refreshInterval = 3000;
var refreshInSeconds = refreshInterval / 1000;
$(document).ready(
function () {
$(\"#timerValue\").text(refreshInSeconds.toString());
});
$(function () {
setInterval(
function () {
$.ajax({
url: \'<%:Url.Action(\"RefreshRunningSuites\")%>\',context: document.body,cache: false,success: function (data) {
$(\"div#runningSuites\").html(data);
}
});
},refreshInterval);
});
</script>
<h2>
Currently Running Suites</h2>
<br />
<div id=\"runningSuites\">
<% Html.RenderPartial(\"RunningSuites\",Model); %>
</div>
<div id=\"footer\">
Listing refreshes every <label id=\"timerValue\"></label> seconds.
</div>
用户控件RunningSuites
循环遍历传入的viewmodel对象中包含的列表,并为普通html表内部列表中的每个记录呈现新的表行
这是ActionResult RunningSuites
public ActionResult RefreshRunningSuites()
{
RunningSuitesviewmodel viewmodel = new RunningSuitesviewmodel(RunManager.GetCurrentlyRunningSuites());
return PartialView(\"RunningSuites\",viewmodel);
}
任何想法如何解决此内存泄漏?谢谢。
解决方法
报告与您相同的情况:
http://forum.jquery.com/topic/memory-leaks-with-ajax-calls
解决方法(如果您使用的版本<1.5,并且在1.5+中未清除,则需要检查那些版本,但不确定是否已修复)
首先清除您的内容
(document.getElementById(\“ runningSuites \”))。innerHTML = \“ \”;
这个\'may \'已在jQuery 1.5中修复-如果不使用变通方法,请稍作调整。
Fyi帮助解决DOM泄漏检查此问题以获得更多信息
http://www.smallworkarounds.net/2009/04/jquery-leaking-memory-be-careful-while.html \\