【发布时间】:2014-05-01 18:01:43
【问题描述】:
我正在尝试实现自动刷新网格,并在用户编辑/添加/搜索时停止,所以我在 ondblClickRow 事件中使用 clearInterval(因为我使用内联编辑)。
所以,我的问题是何时何地重新启动 de autoreload。我尝试在 loadComplete 事件中,这似乎是更好的地方,但每次 loadComplete 触发 setInterval() 到 reloadGrid,它“乘以”reloadGrid 调用! 换句话说,第一次(8 秒后)它重新加载正常。第二次调用 2 次重新加载。第三次调用 4 次重新加载。第四次调用 8 次重新加载,以此类推……这意味着每次都有很多 ajax 请求!
什么不正确?我会很感激一些帮助,谢谢!
这是我的代码:
var mySeconds = 10 * 1000; //seconds *1000
var myTimer;
function autoReloadGrid($grid) {
$grid.trigger("reloadGrid", [{current:true}]);
};
var $myGrid = $("#myGrid");
$myGrid.jqGrid({
//grid options here...
ondblClickRow: function(rowId) {
clearInterval(myTimer);
//editRow here...
},
loadComplete: function() {
console.log('myTimer = ' + myTimer);
myTimer = setInterval( function() { autoReloadGrid($myGrid) }, mySeconds);
}
})
注意:我使用 console.log 测试 myTimer 值,每次触发时它都会显示不同的 ID。
【问题讨论】: