我目前正在使用SetInterval函数和Ajax调用每30秒重新加载一次局部视图,如下所示:
$(document).ready(function () {
//reload new jobs every 30 sec
setInterval(function () {
//only reload the sections between certain times
var date = new Date();
var hour = date.getHours();
if (hour >= 7 && hour <= 21) {
ReloadNew();
}
}, 30000);
function ReloadNew() {
$.ajax({
url: "@Url.Action("NewFaults","Fault")",
type: 'GET',
dataType: 'html',
cache: false,
success: function (html) {
$('#NewFaults').html(html);
}
});
}
});
然而,我一直有内存泄漏问题,经过一些研究后我发现不建议使用SetInterval和Ajax,因为它们在窗口失焦时堆叠,然后当它重新进入时立即运行焦点。建议改为使用SetTimeout。
然而,从我所看到的有多种方法来实现带有Ajax调用的SetTimeout,所以我想知道是否有人可以帮助我如何调整上面的内容来改为使用SetTimeout。
由于
答案 0 :(得分:0)
你可以试试这个,但我怀疑你的泄密可能来自$(document).ready(function () {
function ConsiderReload() {
//only reload the sections between certain times
var date = new Date();
var hour = date.getHours();
if (hour >= 7 && hour <= 21) {
ReloadNew();
}
setTimeout(ConsiderReload, 30000);
}
function ReloadNew() {
$.ajax({
url: "@Url.Action("NewFaults","Fault")",
type: 'GET',
dataType: 'html',
cache: false,
success: function (html) {
$('#NewFaults').html(html);
}
});
}
ConsiderReload();
});
。
{{1}}