时间:2021-05-26
需求
例如在搜索框中,并不是你输入一个字就需要渲染一次数据,而是取最后一次的输入内容进行搜索。
连续按下 AAAAA ,只取最后一次按下时搜索框的内容(即:AAAAA)进行搜索。 而不是搜索跟 A(第一次按下),AA(第二次按下),AAA相关联的内容
本文例子: 检测用户输入的值,监测这个值,然后根据值调用接口查询结果
代码:
<template> <input type="text" v-model="message"><template><script>import axios from "axios";export default { data(){ return{ message:'' }, watch : { message(newVal){ var that = this; // 取消上一次请求 this.cancelRequest(); axios.get('/api/searchList?cityId=10&kw='+ newVal, { cancelToken: new axios.CancelToken(function(c) { that.source = c; }) }).then((res) => { // 在这里处理得到的数据 //数据逻辑处理 }).catch((err) => { if (axios.isCancel(err)) { console.log('Rquest canceled', err.message); //请求如果被取消,这里是返回取消的message } else { //handle error console.log(err); } }) } }, methods: { cancelRequest(){ if(typeof this.source ==='function'){ this.source('终止请求') } } }}</script>其他做法:
可以使用 clearTimeout() setTimeout() 截取,设置一定时常请求一次
总结
以上所述是小编给大家介绍的vue中axios防止多次触发终止多次请求的实现方法(防抖),希望对大家有所帮助!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
函数防抖定义:多次触发事件后,事件处理函数只执行一次,并且是在触发操作结束时执行。在vue中对click添加防抖处理conston=Vue.prototype.
防抖:防止重复点击触发事件首先啥是抖?抖就是一哆嗦!原本点一下,现在点了3下!不知道老铁脑子是不是很有画面感!哈哈哈哈哈哈典型应用就是防止用户多次重复点击请求数
二次封装axios,根据参数来实现多个请求多次拦截1.新建axiosTool.js文件,设置请求拦截和处理的逻辑importVuefrom'vue'import
layer.confirm快速点击会重复触发事件问题1.问题描述:快速点击会出现,重复触发事件,像后台发起多次请求,此时后台极端=短时间内多次请求,会出现并发问
我们在用ajax请求数据时,可能会遇到一次点击多次触发的可能。(比如说:ajax的onreadystatechange事件就会触发多次;这是因为onreadys