[js] 说说防止重复发送ajax请求的方法有哪些?各自有什么优缺点?

[js] 说说防止重复发送ajax请求的方法有哪些?各自有什么优缺点?

// 方法一 防抖

function debounce(f, ms) {
let time;
return function(){
let arg = Array.prototype.slice.call(arguments, 1);
if(time) {
clearTimeout(time);
}
time = setTimeout(function(){
f.apply(this, arg)
},ms)
}
}

// 方法二 节流
function throttle(f, ms){
let lastTime = 0;
return function(){
let arg = Array.prototype.slice.call(arguments, 1);
let newTime = Date.now();
if(newTime-lastTime > ms) {
setTimeout(function(){
f.apply(this, arg)
},ms)
}
lastTime = newTime;
}
}

    防抖法:在一段时间内重复请求,则取消本次请求
    节流法:在一段时间内只能请求一次,下次请求必须在前一次请求完成后
    等值法:未完成请求状态不再请求,而是完成后直接返回相同的内容

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

你可能感兴趣的:([js] 说说防止重复发送ajax请求的方法有哪些?各自有什么优缺点?)