美文网首页
7 axios取消请求 防抖

7 axios取消请求 防抖

作者: 无知者3 | 来源:发表于2022-04-19 16:40 被阅读0次

1 取消请求

csdd.gif
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/axios.min.js"></script>
</head>

<body>

    <button class="btn">请求按钮</button>
    <button class="btn_cancel">取消按钮</button>
    <script>
        const btn = document.querySelector('.btn')
        const btn_cancel = document.querySelector('.btn_cancel')

        let cancel = null;

        btn.addEventListener('click', e => {
            axios({
                method: 'get',
                url: 'http://localhost:3000/posts',
                //取消请求配置,c是一个函数
                cancelToken: new axios.CancelToken(c => {
                    cancel = c
                })
            }).then(resp => {
                console.log(resp)
            }).catch(err => {
                console.log(err)
            })

        })

        //取消请求,执行cancel函数即可
        btn_cancel.addEventListener('click', e => {
            cancel();
        })
    </script>
</body>

</html>

2 防抖

放置用户暴力点击,每次都会请求数据;


111.gif
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/axios.min.js"></script>
</head>

<body>

    <button class="btn">请求按钮</button>

    <script>
        const btn = document.querySelector('.btn')
        let cancel = null;

        btn.addEventListener('click', e => {
            //当请求还未完成,canael不为null,若此时快速再次点击,就会取消上次请求
            if (cancel !== null) {
                cancel()
            }
            //取消上次请求之后再次请求数据
            axios({
                method: 'get',
                url: 'http://localhost:3000/posts',
                cancelToken: new axios.CancelToken((c) => {
                    cancel = c
                })
            }).then(resp => {
                console.log(resp)
                cancel = null
            })
        })
    </script>
</body>

</html>

相关文章

  • 7 axios取消请求 防抖

    1 取消请求 2 防抖 放置用户暴力点击,每次都会请求数据;

  • axios如何取消接口请求

    vue项目,如何在axios中取消已经发送的请求呢? 原生js的abort()这个方法 在axios中取消接口请求...

  • axios 取消请求

    axios文档里介绍的取消axios请求有以下两种方式: 举?:切换路由时,取消上个路由的请求。 其实我们的解决方...

  • axios取消请求?

    前言 最近在项目中遇到一个问题,在连续发送同一请求时,如果第二次请求比第一次请求快,那么实际显示的是第一次请求的数...

  • 防止发起多余http请求的几种方式

    cancelToken 场景: 请求接口数据量过大,结果未返回需要取消接口pending用法:axios取消请求的...

  • 问题总结

    1. 取消axios请求 业务场景:单页应用,希望退出当前页的时候,取消请求 官网: https://github...

  • axios取消请求以及获取文件上传进度

    1. axios取消接口请求[https://segmentfault.com/a/11900000212905...

  • axios-取消请求

    点击cancel函数就可以阻止请求。

  • axios取消指定请求

  • Axios 取消重复请求

    有什么用? 当用户频繁点击在短时间内发送多个 ajax 请求,但是由于网络原因服务器数据无法及时响应返回,这时候,...

网友评论

      本文标题:7 axios取消请求 防抖

      本文链接:https://www.haomeiwen.com/subject/estqsrtx.html