keypress、keyup、keydown事件频繁执行优化

前言

某日需要针对某个输入框做自动补全,但是后来发现输入一个汉字输入几个英文字母的时候也会因为敲入每个英文都会触发事件一次,这种方式非常不好,对服务端的压力太大了,于是这里做一下处理。

截图

这里写图片描述

解决方案

思路,延迟执行


/*****这里按照一定频率执行某个时间。*****/
UiUtil.BindEvent=function(_opts){
    var _settings={
        timeSep:100 //执行的时间间隔。
        ,element:""
        ,eventType :"click"//要绑定的事件类型。
        ,callback:function(event){}
    };

    $.extend(_settings,_opts);
    var _element=$(_settings.element);
    _settings.timeSep=parseInt(_settings.timeSep);

    var _time_out=null;
    _element.bind(_settings.eventType,function(event){


        if(_time_out!=null){

            clearTimeout(_time_out);
            _time_out=null;
            _time_out=setTimeout(function(){

                _settings.callback(event);
                clearTimeout(_time_out);
                _time_out=null;
            },_settings.timeSep);
        }
        else{

            _time_out=setTimeout(function(){

                _settings.callback(event);
                clearTimeout(_time_out);
                _time_out=null;
            },_settings.timeSep);
        }
    });

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值