- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 javascript 中有 3 个计时器,我创建了按钮来控制它们的流程(切换它们)。然而(仅!)有时他们不想停下来。问题可能出在哪里?计时器太多?我正在 Google Chrome 上测试它。
所以,我的代码中最重要的部分:
//to insert infos
function addInfo(info){
$("#info").text(info);
clearTimeout(window.myTimer);
window.myTimer = setTimeout(function() {
$("#info").text("");
}, 5000);
return true;
}
function startHTML(){
window.TimerHTML = setInterval(function(){
//ajax
}, 500);
}
function startView(){
window.TimerView = setInterval(function(){
//ajax
}, 2000);
}
function stop_html(){
clearInterval(TimerHTML);
startView();
addInfo("html->view ");
}
function start_html(){
clearInterval(TimerView);
startHTML();
addInfo("view->html");
}
$(function() {
startView();
start_html();
//these actions should switch timers
$("#stop_html").click(function(){
stop_html();
return false;
});
$("#start_html").click(function(){
start_html();
return false;
});
});
编辑:添加了 html
<button class="btn btn-primary btn-allwidth" id="start_html" data-toggle="tooltip" data-placement="right" title="View->Html">HTML ON</button>
<button class="btn btn-primary btn-allwidth" id="stop_html" data-toggle="tooltip" data-placement="right" title="HTML->View">HTML OFF</button>
<a href="#" onclick="javascript:$('#info-container').toggle('slow'); return false;" class="btn btn-primary btn-allwidth" data-toggle="tooltip" data-placement="right" title="Infos">Infos<i class="glyphicon glyphicon-chevron-down"></i></a>
<div id="info-container">
<div id="info" class="alert alert-success"></div>
</div>
最佳答案
如果连续执行startHTML或startView(即startHTML连续执行两次),那么您最终会创建两个间隔。
当你执行
window.TimerHTML = setInterval(function(){
//ajax
}, 500);
连续两次,window.TimerHTML 获得分配给它的新间隔。但这并不意味着在此之前分配给 window.TimerHTML 的上一个间隔已被清除。它仍然继续,但不再分配要访问的变量。
依次运行这两个命令即可测试
window.TimerHTML = setInterval(function(){
console.log("A");
}, 500);
window.TimerHTML = setInterval(function(){
console.log("B");
}, 500);
即使您清除 window.TimerHTML,您仍然会看到“A”被记录在控制台中。那是因为之前的计时器从未被清除。并且 TimerHTML 无法再访问它。
这可能是您的计时器无法停止的原因。
关于javascript - javascript 中的计时器有时不想停止计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30561637/
我的应用程序中有一个 IList 站点,并且站点有大量属性。 我想将此列表转换为 JSON,以便在类似于此的下拉列表中使用 var sites = SiteRepository.FindAll
我正在将一些代码从 bluebird 切换到原生 Promises,并且我对原生 promises 吞下错误这一事实感到相当恼火,即使没有定义 .catch() 也是如此。它使调试变得不可能,除非您在
在同步访问共享资源时,是否有理由不使用读/写锁而不是普通的互斥锁(基本上只是写锁),除了它具有比我可能需要的更多功能的哲学原因? 换句话说,如果我只是默认使用读/写锁作为我首选的同步结构,我是不是在踢
我刚进入这个元素,代码已经写好了,但我们发现了一个问题。当您单击菜单中的任何位置时,它会变成金色,您看不到菜单该部分中的任何链接。您可以再次单击它,它将返回到正常状态。这只发生在 Internet E
这是一个简单的类和简单的测试函数: #include #include namespace { using namespace std; } class NameStream {
我有一个 std::vector其中 Foo是一个包含 Foo( Foo&& ) noexcept 的类. 向容器中添加对象完美无缺,但是使用 std::vector::erase( iterator
我正在通过这段代码使用各种浏览器尝试 localStorage 和 JSON: function getStorage() { stored = JSON.pa
您可能认为此问题与 Running two projects at once in Visual Studio 完全相同.不完全是,恰恰相反。 我有一个带有两个 MVC3 项目的 VS 2010 解决
我正在制作一个网站:http://arc-angyal.hu/ 我的第一个问题是,我无法让左侧的红色 div 足够高以填充页眉和页脚之间的空间。它位于标题之后和导航之前。我已经设置: html, bo
根据 This Question ,我正在使用线程来终止用户输入的函数。我的代码看起来像: bool stopper = false; thread stopThread(userStop, &sto
我是一名优秀的程序员,十分优秀!