jQuery: 코드를 실행하지 않고 1초 대기/지연
이해할 수가 없습니다..delay
jQuery에서 작동하는 메서드:
$.delay(3000); // not working
$(queue).delay(3000); // not working
제어되지 않는 변경 값이 다른 값보다 크거나 같을 때까지 while loop을 사용하고 있는데 X초 동안 실행할 방법을 찾을 수 없습니다.
다음과 같은 방법으로 일부 작업을 지연시킬 수도 있습니다.
setTimeout(function (){
// Something you want delayed.
}, 5000); // How long you want the delay to be, measured in milliseconds.
$.delay는 실행을 중지하는 것이 아니라 대기열에서 애니메이션을 지연시키는 데 사용됩니다.
while 루프를 사용하는 대신 다음을 사용하여 매초마다 검사를 수행하는 메소드를 재귀적으로 호출해야 합니다.setTimeout
:
var check = function(){
if(condition){
// run when condition is met
}
else {
setTimeout(check, 1000); // check again in a second
}
}
check();
ES6 set타임아웃
setTimeout(() => {
console.log("we waited 204586560000 ms to run this code, oh boy wowwoowee!");
}, 204586560000);
편집: 204586560000ms는 원래 질문과 이 답변 사이의 대략적인 시간입니다...내가 계산을 잘했다고 가정하고 말입니다.
ES6 기능을 사용하고 있고 비동기 기능을 사용하는 경우 이 기능을 사용하여 일정 시간 동안 코드 실행을 효과적으로 중지할 수 있습니다.
const delay = millis => new Promise((resolve, reject) => {
setTimeout(_ => resolve(), millis)
});
사용 방법은 이렇습니다.
await delay(5000);
비동기 기능을 사용하는 경우에만 요청된 밀리초 동안 정지됩니다.아래 예:
const myFunction = async function() {
// first code block ...
await delay(5000);
// some more code, executed 5 seconds after the first code block finishes
}
jQuery'sdelay
함수는 효과 및 효과 큐와 함께 사용하도록 되어 있습니다. 문서 및 예제를 참조하십시오.
$('#foo').slideUp(300).delay(800).fadeIn(400);
변수의 변화를 관측하려면 다음과 같은 작업을 수행할 수 있습니다.
(function() {
var observerInterval = setInterval(function() {
if (/* check for changes here */) {
clearInterval(observerInterval);
// do something here
}
}, 1000);
})();
자바스크립트setTimeout
매우 좋은 해결책입니다.
function funcx()
{
// your code here
// break out here if needed
setTimeout(funcx, 3000);
}
funcx();
그delay
jQuery의 함수는 주로 jQuery 애니메이션 큐에서 애니메이션을 지연시키는 데 사용됩니다.
delay()
코드의 흐름을 정지시키고 다시 실행하지 않습니다.자바스크립트에서는 그렇게 할 수 있는 실질적인 방법이 없습니다.모든 것은 다음과 같은 콜백을 받는 기능으로 수행되어야 합니다.setTimeout
다른 사람들이 언급한 바 있습니다.
jQuery의 목적은delay()
애니메이션 큐를 대기한 후 실행하는 것입니다.그래서 예를 들면.$(element).delay(3000).fadeIn(250);
3초 후에 요소가 희미해집니다.
function sleep(num) {
let now = new Date();
let stop = now.getTime() + num;
while(true) {
now = new Date();
if(now.getTime() > stop) return;
}
}
sleep(1000); // 1 second
alert('here');
현재 시간을 밀리초 단위로 가져옵니다.num
(미래의 시간이다) 당신이 추가한 것은num
현재 시간까지 밀리초 단위입니다.
무한 순환은 현재 시간이 이전 단락에서 지정한 시간보다 늦을 때까지 현재 시간을 확인하기 시작하며, 일단 발생한 함수는 실행을 중지하고 이 함수 호출 후에 실행을 계속합니다.
자바스크립트는 비동기식 프로그래밍 언어이므로 한동안 실행을 중지할 수 없습니다. 실행을 중지할 수 있는 유일한 방법은 다음을 사용하는 것입니다.setTimeout()
그것은 지연이 아니라 "delayed 함수 콜백"입니다.
jQuery 없이 javascript만 작동합니다.
<!DOCTYPE html>
<html>
<head>
<script>
function sleep(miliseconds) {
var currentTime = new Date().getTime();
while (currentTime + miliseconds >= new Date().getTime()) {
}
}
function hello() {
sleep(5000);
alert('Hello');
}
function hi() {
sleep(10000);
alert('Hi');
}
</script>
</head>
<body>
<a href="#" onclick="hello();">Say me hello after 5 seconds </a>
<br>
<a href="#" onclick="hi();">Say me hi after 10 seconds </a>
</body>
</html>
언급URL : https://stackoverflow.com/questions/8896327/jquery-wait-delay-1-second-without-executing-code
'programing' 카테고리의 다른 글
Excel 시트의 행 높이를 프로그래밍 방식으로 변경 (0) | 2023.09.26 |
---|---|
구조물에 대한 포인터의 정의를 입력 (0) | 2023.09.26 |
maxscale master slave 연결 풀에서 유효한 연결 확인 (0) | 2023.09.26 |
바인딩되지 않은 RestTemplate로 인해 Spring-BootRestClientTest가 MockRestServiceServer를 올바르게 자동 구성하지 않음 (0) | 2023.09.26 |
워드프레스 webp 이미지 미리보기 (0) | 2023.09.26 |