我正在使用jQuery并为我的网站开发通知系统.通知使用setTimeout函数自动淡出.
如何停止setTimeout调用的计时器?
例如,我想在鼠标悬停在通知上时暂停setTimeout调用并继续向下计数鼠标...
我用谷歌搜索"暂停setTimeout"没有运气.
我正在使用clearTimeout清除setTimeout调用,同时淡出mouseout上的通知但是暂停效果会很好.
有任何想法吗?
我正在使用debouncing来在超时后使用settimeout执行事件.我遇到的问题是,其他javascript事件期望这些事件同步发生.由于它们现在在超时后执行,我希望能够通过其他javascript事件过早地触发它们(因此那些需要它们的事件不会失败).
Anywhom,如果我这样做:
timeout = setTimeout(function() { alert('hi'); }, 10000);
Run Code Online (Sandbox Code Playgroud)
,我希望在10秒钟之前发生这种情况,我该怎么做?
如有必要,解决方案可能涉及jquery.谢谢!
编辑:是否可以通过访问超时对象来执行此操作?
请考虑以下示例:
<script type="text/javascript">
function alertBox(){
alert('Hello World!');
}
function doSomething(){
setInterval(alertBox(), 5000); //This is for generic purposes only
};
function myFunction(){
setTimeout(doSomething(),3000);
};
myFunction();
</script>
Run Code Online (Sandbox Code Playgroud)
是什么导致它立即执行,而不是等待3秒设置,以及仅执行警报ONCE,而不是按预定的5秒间隔执行?
感谢您的任何帮助,您可以提供!
石匠
我有这个功能
notes.forEach(function(note) {
setTimeout(function() {
playNote(note);
}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
这不起作用.它同时播放所有音符,而不是按顺序播放它们之间的间隔为1秒.看起来我需要在这里使用一个闭包来完成这项工作.有人可以帮我修复这个功能,所以它会播放每个音符之间的延迟音符吗?
好的,非常简单的问题.我在javascript参加速成课程.
如果我
timer = setTimeout(..., 500)
用来设置定时器,然后clearTimeout(timer)
清除定时器,定时器的整数值不会改变,所以我的问题是如何知道定时器是超时还是清除?
我想使用if (timer) {...}
,但显然正整数总是返回true.
我一直在使用在我的应用程序中使用setInterval(fn,delay)函数的脚本,在阅读了setTimeout和JS如何工作后,我遇到了一些奇怪的结果,所以我做了一个测试:这是jsfiddle https:// jsfiddle.净/ jyq46uu1/2 /
和建议的代码:
var limit = 1000000000;
var intervals = 0;
var totalTime = new Date();
var startTime = new Date();
var uid = setInterval(
function () {
// final lap?
if (intervals == 9) clearInterval(uid);
for (i = 0; i < limit; i += 1) {
// just working the CPU
}
// reduce the iterations
limit = limit / 10;
intervals += 1;
console.log('Interval ' + intervals +' Time elapsed : ' + (new Date() …
Run Code Online (Sandbox Code Playgroud) 正如我已经了解的那样(这里:https://www.youtube.com/watch?v = 8aGhZQkoFbQ),在某些情况下,调用setTimeout时延迟0ms(因为事件循环)会很有用.
现在,每当我使用时,setTimeout
我也会小心地clearTimeout
在适当的位置打电话,以确保没有任何东西留在某处,并在我不希望它被执行的地方执行.
所以我的问题是:clearTimeout
在setTimeout
0ms 之后打电话是否有必要(有意义吗?)传递的函数会立即附加到回调队列中,因此我认为clearTimeout
不会(也不能)执行任何操作.或者clearTimeout
甚至可以从回调队列中删除传递的函数(因此在超时到期之后但在函数执行之前)?
第二个问题:即使它没有做任何事情,clearTimeout
在这些情况下总是要求"最佳做法" 吗?
就像我在这里解释的那样,我不能再使用window.setTimeout()和任何窗口经典函数,如clearInterval等...); 但我需要调用JS块代码作为异步.
这就是我使用XHR请求的原因.
使用XHR实现window.setTimeout()的智能替代方法的最佳方法是什么?
// Not working :(
setTimeout(function(){
document.getElementById("messageTimer").innerHTML = "Happy New Year ! (old version)";
}, 10);
// with or without jQuery - but XHR
jQuery.ajax({
url: "/local/url/easy",
success: function(html, textStatus, jqXHR) {
// a loop ?
// timeout done ?
document.getElementById("messageTimer").innerHTML = "Happy New Year ! (working version)"
}});
Run Code Online (Sandbox Code Playgroud)
我的小提琴测试:https://jsfiddle.net/mlefree/xzh3w2we/
TKS
我的问题是setTimeout运行吗?about 5 seconds
较早。例如,当我将其设置为时5 seconds
,它将立即运行,但是当我在上时15 seconds
,它将在10 seconds
以后运行。
我什至调查了这个问题:React Native中的setTimeout,但是我仍然无法解决问题
changeNotify() {
let that = this;
console.log("before");
setTimeout(function () {
console.log("After");
that.setState({notifyModal: false})
}, 5000);
}
Run Code Online (Sandbox Code Playgroud)
并在渲染
<Button
title='change'
onPress={() => this.setState({notifyModal: true},()=>this.changeNotify())}
/>
Run Code Online (Sandbox Code Playgroud) setTimeout
在React上使用Javascript中的函数时,我们正在努力解决一个奇怪的问题。
由于在中使用代码setTimeout
,因此运行速度要比不使用代码时运行速度慢得多setTimeout
!
作为比较,该性能导致:
使用
setTimeout
:1391毫秒,
不使用setTimeout
:15毫秒
在API回调中(例如axios
),也会发生setTimeout版本!
下面显示了一个简单的示例代码:
codesandbox
谁能解释发生了什么事?
import React, { useState } from "react";
import ReactDOM from "react-dom";
function App() {
const [value, setValue] = useState("");
const [time, setTime] = useState("");
const startSample = () => {
const startTimeStamp = new Date().valueOf();
for (let i = 0; i < 5000; i++) {
setValue(`test-${i}`);
// console.log(`test-${i}`);
}
const endTimeStamp = new Date().valueOf();
setTime(`${endTimeStamp - startTimeStamp}ms`);
}; …
Run Code Online (Sandbox Code Playgroud) javascript ×10
settimeout ×10
jquery ×2
callback ×1
closures ×1
performance ×1
react-native ×1
reactjs ×1
setinterval ×1
timer ×1