问题描述

使用watch监听库里word的值的变化,获取新值后,用oxios发送的ajax异步请求,

此时会多次发送请求,浪费服务器资料.

解决办法

使用lodash库里的_.debounce函数延缓异步请求的时间,减少对后台请求的压力,设定库里值动态变化后在规定的时间后再异步请求

步骤:

1.安装lodash.

npm install lodash

使用说明:

文档地址:

https://www.css88.com/doc/lodash/#_debouncefunc-wait0-options

2.页面里引入js

<script type="text/javascript" src="../vue/node_modules/lodash/lodash.js"></script>

3.使用_.debounce函数

_.debounce(func, [wait=0], [options={}])

4.完整代码:

10.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>vue</title>
<link rel="stylesheet" href="">
<!--<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
<script type="text/javascript" src="../js/vue.js"></script>
<!---发送异步请求-->
<script type="text/javascript" src="../vue/node_modules/axios/dist/axios.js"></script>
<!---延缓异步请求的时间-->
<script type="text/javascript" src="../vue/node_modules/lodash/lodash.js"></script>
</head>
<body>
<div id="vue">
<!--当input里的值改变时,会改变data里的word-->
<input type="text" v-model="word">
<h1>
<!--拿到data里的result里的值-->
结果:{{result}}
</h1>
</div>
</body>
<script type="text/javascript">
var app=new Vue({
el:'#vue',
watch:{ //监听data里的word的变化
// 拿到input里的新值和旧值
word:_.debounce(
function(new_v,old_v){
// console.log(new_v+'=>'+old_v);
var url = '9.php?word='+new_v;
// ajax get异步请求
axios.get(url).then(function(response){
console.log(response);
app.result = response.data //赋值给data里的result
});
},1000 //1秒后执行
)
},
data:{
word:'',
result:''
}
});
</script>
</html>

10.php

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/1/5
* Time: 10:42
*/ print_r('要搜索的内容是:'.$_GET['word']);
?>

最新文章

  1. Python开发【前端】:DOM
  2. git的几十个基本面
  3. 编写高质量JS代码的68个有效方法(七)
  4. bootstrap 新手学习笔记 代码整理
  5. c# Beginlnvoke 委托
  6. php中文汉字截取函数
  7. 深入ThreadLocal之一
  8. Linux android开发环境问题:Unexcepted exception:cannot run program &quot;android-sdk-linux/platfor-tools/adb&quot; :err=2,No such file or directory.
  9. Java语言基础(四)
  10. 最小费用最大流模板 poj 2159 模板水题
  11. REQIMPORT-购买内部应用程序(R12.2.3)
  12. WEB前端资源集(一)
  13. Printk与sched_clock_init的一点分析
  14. html的基本结构
  15. Tomcat 集群中 实现session 共享的三种方法
  16. centos7操作记录
  17. cocoapod podpackage 自动根据podfile生成framework实现二进制化,原创脚本,转载请注明出处
  18. Including R code in perl
  19. Java函数式编程和lambda表达式
  20. JVM源码分析之一个Java进程究竟能创建多少线程

热门文章

  1. 关于安卓visualizer的用法
  2. Java基础知识——windows系统下安装JDK
  3. java8Stream map和flatmap的区别
  4. 扩展(spread)/收集(rest)运算符
  5. 【web】movie review——静态页面训练、css训练
  6. php编码转换相关
  7. 关于win10上安装.Net Framework3.5的解决办法
  8. [WPF][ListBox]鼠标拖拽多选,(Shift Key、Ctrl Key多选有效)(转)
  9. MAC MAMP install yaf
  10. js高级笔录