setInterval更新ajax列,除非鼠标悬停

setInterval update ajax column unless mouseover

本文关键字:鼠标 悬停 更新 ajax setInterval      更新时间:2023-09-26

我在我的网页设计中有一个列,它由JS函数"refreshColumn()"定期刷新,并由AJAX更新。

setInterval('refreshColumn()',60000);
function refreshColumn() {
..make call with AJAX and load response to element...
document.getElementById('myColumn').innerHTML = xmlhttp.responseText;
}

这是可以的,但是,当我的用户实际使用该列并在它们上刷新时,它不是很实用!

是否有可能修改我已经有什么,合并一个'onmouseover'事件,将阻止从运行AJAX和刷新列的功能,和'onmouseout'允许脚本再次刷新?

您将使用timeout而不是interval,并在mouseover上清除它并在mouseout上重置它。

现场演示

var timeout = setTimeout(refreshColumn,60000);
function refreshColumn() {
    // ajax call ect. reset the timeout
    timeout = setTimeout(refreshColumn,60000); 
}
element.onmouseover = function(){
   clearTimeout(timeout);
}
element.onmouseout = function(){
   timeout = setTimeout(refreshColumn,60000); 
}