扣丁学堂HTML5培训分享HTML5 input输入实时检测以及延时优化

2019-05-28 14:23:19 3003浏览

有个项目是,这么个情况,输入框,实时监测输入,触发请求。第一想法是input 上的onchange()方法,试了一下,不好用,是值等更改确认了,才会触发,不即时。本篇文章扣丁学堂HTML5培训小编给读者们分享一下HTML5 input输入实时检测以及延时优化,对HTML5开发技术感兴趣或者是想要学习HTML5开发的小伙伴就随小编来了解一下吧。


扣丁学堂HTML5培训分享HTML5 input输入实时检测以及延时优化


关于上述问题上网查了一下:


$("#fix").on('input propertychange', function(event){
});


方法的确可以用,但是实时更改。发送的频率有点快啊。


赶紧加个定时器setTimeout。


$("#fix").on('input propertychange', function(event){
   setTimeout(function(){    //延迟0.5s执行
                   console.log($("#fix").val())
        },500);
});


问题又来了,定时器是异步,虽然延迟,但是还会执行,没啥改变。


后来又想到解绑unbind,bind,但是解绑的时间里获取不到键盘输入的事件。


当时第一想法是,触发事件-删除定时器-添加定时器-执行函数。发现还是不好,定时器删不掉,干脆就不执行了。


后来发现一种新方法,时间戳法。


原理就是,每次输入修改全局变量,时间戳,延迟0.5s监测 新的时间戳和和绑定的时间戳相等,就进行下一步。


-----html-----


<input type="text" id="fix">
------script-----
var last;
$("#fix").on('input propertychange', function(event){
    //"#fix为你的输入框
       last = event.timeStamp;
       //利用event的timeStamp来标记时间,这样每次事件都会修改last的值,注意last必需为全局变量
       setTimeout(function(){    //设时延迟0.5s执行
            if(last-event.timeStamp==0)
               //如果时间差为0(也就是你停止输入0.5s之内都没有其它的keyup事件发生)则做你想要做的事
              {
                   console.log($("#fix").val())
               }
        },500);
});


以上就是扣丁学堂HTML5在线学习小编给大家分享的HTML5 input输入实时检测以及延时优化,希望对小伙伴们有所帮助,想要了解更多内容的小伙伴可以登录扣丁学堂官网咨询。


想要学好HTML5开发小编给大家推荐口碑良好的扣丁学堂,扣丁学堂有专业老师制定的HTML5学习路线图辅助学员学习,此外还有与时俱进的HTML5课程体系和HTML5视频教程供大家学习,想要学好HTML5开发技术的小伙伴快快行动吧。扣丁学堂H5技术交流群:673883249。


                          【扫码进入HTML5VIP免费公开课】  


     【关注微信公众号获取更多学习资料】        【扫码进入HTML5前端开发VIP免费公开课】  



查看更多关于“HTML5开发技术资讯”的相关文章>>



标签: HTML5培训 HTML5视频教程 HTML5学习视频 HTML5在线视频 HTML5培训班 前端H5架构师进阶 HTML5公开课

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号