购物车增删数量后什么时候向后台发送改变后的数量?

最近用vue+elementUI做项目,在做购物车时在想,当购物车里的数量变化时,是怎样向后台发送的,如果改变一次就发送一次,这样肯定不好,然后我去淘宝试了下,当我增加后大约一秒后有个请求(是不是这个我不知道,我猜是),如果我一直按着他不会发送,当我停止增加时他就又会去发送了,这个是怎样实现的,或者说向后台发送数量或者之类的请求都是怎样的流程。求解

阅读 3.1k
3 个回答

按照楼主的描述,“函数防抖”了解一下。

这个很简单
你npm install -S debounce,或者自己写一个

function debounce (fn, time) {
    var t;
    return function (ctx) {
        clearTimeout(t)
        t = setTimeout(function() {
            fn.apply(ctx, [].slice.call(arguments,1));
        }, time);
    }
}

function sendAjax () {}

fn = debouncing(sendAjax);
fn(sendData);

但是你为什么不加一个确定按钮?

$(function(){
var time;
$(document).on('click','.inc',function(e){
clearTimeout(time);
time = setTimeout(function(){
//添加到购物车的请求
},1000);//延时一秒

});

});

手机码字,没有缩进 理解一下。^_^
道理很简单 先在外部定义一个变量用来存储计时器。每次点击加数量按钮时 先用clearTimeout把存储的计时器释放掉 ,然后再执行setTimeout,一秒后触发里面的异步事件。如果在一秒内再次点击了按钮 那么setTimeout里面的异步内容还没执行又被clear掉了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题