使用Js定时器来定时跳转

简介: 记录:想实现在5秒后跳转到指定页面,使用到JS定时器和Location对象。

🍎道阻且长,行则将至。🍓


Js小记🍀

记录:想实现在5秒后跳转到指定页面,使用到JS定时器Location对象。

JS定时器🌱

有两种定时器: setTimeoutsetInterval,一个是在指定时间结束后执行一次,另一个是根据指定时间循环。

Location对象🍑

Location 对象是 JavaScript 对地址栏封装的对象。可以通过操作该对象,跳转到任意页面。使用 window.location获取,window. 可以省略。例如:
location.href = "https://www.csdn.net";

准备了一个简单的页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
</script>
</body>
</html>
  • 🌴1 >>>>> 20%

想实现在5秒后跳转到指定页面,于是在<script>写:

    document.write("5秒跳转到首页...");
    setTimeout(function (){
        location.href = "https://https://www.csdn.net"
    },5000);

==效果是达成了!==


  • 🌴2 >> 出现问题 >>> 40%

但是突然想到,怎么让这个过程变为一个动态的!过一秒钟提示一下。
于是在<script>继续写,使用for循环加定时器

    document.write("5秒跳转到首页...");
    for (let i = 5; i >0; i--) {
         setTimeout(function () {
            document.write(i + "秒后跳转到首页...");
        }, 1000);
    }

结果==问题来了==,一秒钟就执行完了,内容倒是全出来了。
image.png

==原因==:定时器是多线程执行的,就是说这个for循环只不过是开启了多个定时器线程。


  • 🌴3 >> 方案B解决A >>>>> 60%

为了做出这个效果,于是想用循环定时器来实现:

    var i=5;
    setInterval(function () {
        document.close()
        document.write(i + "秒后跳转到首页...");
        i--
        if(i==0) {
            location.href = "https://www.csdn.net"
        }
    }, 1000);

使用document.close()可以清除内容,于是==实现了==:
30197284c1bb4aca9a5b09dcf41121bd.gif

但是不解决使用定时器的问题,就是觉得不完美!这怎么受得了!


  • 🌴4 >> 解决A >>>>>>> 80%

既然for循环不能这么用,于是我把for循环去掉了,把定时器写进了方法里,这不就可以顺序执行了。

    var ti =5;
    function a() {
        document.close()
        document.write(ti + "秒后跳转到首页...");
        ti--
        if(ti==0) {
            location.href = "https://www.csdn.net"
        }
        setTimeout(a, 1000);
    }
    //执行
    setTimeout(a, 1000);

也==实现了如下效果==:
30197284c1bb4aca9a5b09dcf41121bd.gif


🌻END🌼


☕物有本末,事有终始,知所先后。🍭

相关文章
|
1月前
|
JavaScript 前端开发
js之一次性定时器
js之一次性定时器
11 1
|
1月前
|
JavaScript 前端开发
js之永久定时器
js之永久定时器
16 1
|
1月前
|
JavaScript 前端开发 安全
JavaScript实现跳转的方法
JavaScript实现跳转的方法
17 0
|
2月前
|
JavaScript
Vue3基础(21)___在axios.js中使用路由跳转
本文介绍了在Vue 3中如何在axios.js中使用路由跳转,通过直接引入路由实例并使用`router.push`实现页面跳转。
115 0
|
3月前
|
JavaScript 前端开发
JavaScript 地址信息与页面跳转及跳转传参
JavaScript 地址信息与页面跳转及跳转传参
34 1
|
3月前
|
JavaScript 前端开发
解决在JS中阻止定时器“重复”开启问题、Vue中定时器的使用
这篇文章讨论了在JavaScript和Vue中如何避免定时器重复开启的问题,并提供了一个模拟场景和代码示例,演示了在开启新定时器前清除旧定时器的方法。
解决在JS中阻止定时器“重复”开启问题、Vue中定时器的使用
|
3月前
|
JavaScript 前端开发
js之永久定时器
js之永久定时器
|
3月前
|
JavaScript 前端开发 安全
JavaScript实现跳转的方法
JavaScript实现跳转的方法
|
3月前
|
JavaScript 前端开发
|
3月前
|
JavaScript
JS 判断域名并跳转到指定页面
JS 判断域名并跳转到指定页面
34 0