我创建了一个页面,需要根据数据库中的数据更新其元素。我想知道你对使用eval的这种方法有什么看法,我知道它有风险,但在我看来这是最快的方法。
$('.updatable').each(function () {
var data;
data = 'ViewObjectId=' + $(this).attr('objectid');
$.ajax({
async: true,
url: '/Ajax/GetUpdatedViewObjectDataHandler.ashx',
data: data,
type: 'POST',
timeout: 10000,
success: function (data) {
$.each(data, function (index, value) {
eval(value);
});
}
});
现在我遇到的问题是页面加载时,页面每10秒更新一次,直到这里完美。
每轮更新后,我的Internet Explorer会窃取一些内存,并在几小时后获得整个机器内存,非常棒。
在这种情况下你会做什么?建议采用其他一些更新方法吗?或者甚至,你认为我能做些什么来避免这种内存泄漏?
答案 0 :(得分:2)
在这里找到答案:Simple jQuery Ajax call leaks memory in Internet Explorer
解决方案:
var request = $.ajax({ .... });
request.onreadystatechange = null;
request.abort = null;
request = null;
JQuery不这样做,内存永远不会释放。
jQuery版本1.4.2。
现在它的工作就像一个魅力。