vue中axios防止多次触发,终止多次请求(防抖)

vue中axios防止多次触发,终止多次请求(防抖),第1张

概述需求 例如在搜索框中,并不是你输入一个字就需要渲染一次数据,而是取最后一次的输入内容进行搜索。 连续按下 AAAAA ,只取最后一次按下时搜索框的内容(即:AAAAA)进行搜索。 而不是搜索跟 A(第一次按下),AA(第二次按下),AAA相关联的内容   代码: <script>import axios from ‘axios‘import qs from ‘qs‘ex

需求

例如在搜索框中,并不是你输入一个字就需要渲染一次数据,而是取最后一次的输入内容进行搜索。

连续按下 AAAAA ,只取最后一次按下时搜索框的内容(即:AAAAA)进行搜索。 而不是搜索跟 A(第一次按下),AA(第二次按下),AAA相关联的内容

 

代码:

&lt;script&gt;import axios from axiosimport qs from qsexport default {    methods: {        request(keyword) {            var CancelToken = axios.CancelToken            var source = CancelToken.source()                          // 取消上一次请求            this.cancelRequest();                        axios.post(url,qs.stringify({kw:keyword}),{                headers: {                    Content-Type: application/x-www-form-urlencoded,Accept: application/Json                },cancelToken: new axios.CancelToken(function executor(c) {                    that.source = c;                })            }).then((res) =&gt; {                // 在这里处理得到的数据                ...            }).catch((err) =&gt; {                if (axios.isCancel(err)) {                    console.log(Rquest canceled,err.message); //请求如果被取消,这里是返回取消的message                } else {                    //handle error                    console.log(err);                }            })        },cancelRequest(){            if(typeof this.source ===function){                this.source(终止请求)            }        },}}&lt;/script&gt;

 其他做法:

 

    可以使用  clearTimeout()   setTimeout()  截取,设置一定时常请求一次     

 

 

引自:https://segmentfault.com/a/1190000016963943

总结

以上是内存溢出为你收集整理的vue中axios防止多次触发,终止多次请求(防抖)全部内容,希望文章能够帮你解决vue中axios防止多次触发,终止多次请求(防抖)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1019590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存