jQuery: 코드를 실행하지 않고 1초 대기/지연
이해할 수가 없습니다..delayjQuery에서 작동하는 메서드:
$.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();
그delayjQuery의 함수는 주로 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 |