📅  最后修改于: 2023-12-03 15:31:36.489000             🧑  作者: Mango
Javascript 延迟指的是在执行Javascript代码时设置一定的时间间隔,延迟执行代码,从而达到某些特定的目的,如动画效果、异步操作等。
setTimeout() 是 Javascript 中的一个内置函数,可以用来设置延迟执行代码的时间间隔。
语法如下:
setTimeout(function, milliseconds, arg1, arg2, ...)
例如,以下代码将在 2 秒后弹出一个警告框:
setTimeout(function() {
alert("Hello, World!");
}, 2000);
setInterval() 与 setTimeout() 类似,区别在于 setInterval() 会按照指定的时间间隔一直执行代码,直到被 clearInterval() 终止。
语法如下:
setInterval(function, milliseconds, arg1, arg2, ...)
例如,以下代码每隔 1 秒钟弹出一个警告框:
var count = 0;
var intervalId = setInterval(function() {
alert(++count);
if (count == 10) clearInterval(intervalId);
}, 1000);
通过设置一定的时间间隔,在一段时间内逐渐改变元素的位置、大小、颜色等属性,实现动态效果。
例如,以下代码将会使一个元素在 2 秒内向右移动 200px:
var element = document.getElementById("myElement");
var position = 0;
var intervalId = setInterval(function() {
if (position >= 200) clearInterval(intervalId);
element.style.left = position++ + "px";
}, 10);
异步操作指的是在执行某些代码时不会阻塞主线程,而是将其放在后台继续执行,同时主线程可以继续执行其他操作,提高了代码的效率和用户的体验。
例如,以下代码演示了在异步操作中使用 setTimeout() 以等待某个资源加载完成后再继续执行代码:
function loadData(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onload = function() {
if (xhr.status == 200) {
setTimeout(function() {
callback(xhr.responseText);
}, 2000);
}
};
xhr.send();
}
loadData("https://example.com/data", function(data) {
console.log(data);
});