我试图避免使用 innerHTML
,因为它会导致我的浏览器崩溃,可能是因为刷新率为 250 毫秒。
无论如何,我宁愿在隐藏的 <div>
中放置一些内容,并且仅在满足某个条件时才使 <div>
可见。有什么最好的方法可以处理这个问题?
基本上,我现在正在做的是..
setInterval(function () {
if (serverReachable()) {
.... // lines of code
.... // lines of code
var changeIt = document.getElementById('change')
changeIt.innerHTML = '';
timeout = setInterval(function(){window.location.href = "Tracker.html";},5000);
}
} else {
clearTimeout(timeout);
timeout = null;
var changeIt = document.getElementById('change')
changeIt.innerHTML = 'offline';
}
}, 250);
这将使我的浏览器崩溃,因为我没有使用innerHTML来打印“离线”,而是使用整个。我希望这个
被隐藏起来,而不是使用innerHTML,如果条件满足(在这种情况下,没有网络连接),则简单地取消隐藏。
setInterval()
更改为递归调用的setTimeout()
- 这不应该导致浏览器崩溃。当然,内部的setInterval
应该是一个setTimeout
- 一次性事件。 - MrWhite