函数优化(函数节流 函数去抖)

节流:函数调用量(函数调用频次)

    <p>搜索 <input type="text" id="ipt"></p>
    <ul id="search-list">
        <li>你好</li>
    </ul>
    <script src="./utils.js"></script>
    <script>
        var t = null;
        _("#ipt").oninput = function(){
            var value = this.value;、
            if( typeof t === "number" ){
                return false;
            }
            // 每100ms毫秒只能执行一次;
            t = setTimeout( function(){
                t = null;
                jsonp(url,callback,file_name,data));
            } , 100)
        }
        function renderSearch(res){
            var search_list = res.g;
            var html = "";
            if( search_list === undefined ){
                return  _("#search-list").innerHTML = html;
            }
            search_list.forEach( function( item ){
                html += "<li>"+ item.q +"</li>"
            })
            _("#search-list").innerHTML = html;
        }

 

去抖:无论执行多少次,都只关注最后一次,最后一次执行结束之后某段时间,我们再去执行对应的程序

<p>搜索 <input type="text" id="ipt"></p>
    <ul id="search-list">
        <li>你好</li>
    </ul>
    <script>
        var t = null;   
        _("#ipt").oninput = function(){
            clearTimeout(t);
            t = setTimeout(function(){
                var value = this.value;
jsonp(url,callback,file_name,data));
}.bind(this),500) }
         function renderSearch(res){
            var search_list = res.g;
            var html = "";
            if( search_list === undefined ){
                return  _("#search-list").innerHTML = html;
            }
            search_list.forEach( function( item ){
                html += "<li>"+ item.q +"</li>"
            })
            _("#search-list").innerHTML = html;
        }
 

 

posted @ 2021-05-09 21:08  SeventhMeteor  阅读(60)  评论(0)    收藏  举报