做了个输入提示框,onkeyup触发搜索关键字,但是如果用户按的很快的话会造成服务器很卡例如用户输入 beijing 搜索7次 怎样使到搜索延迟在输到g的时候再搜

解决方案 »

  1.   

    var T=0,key
    keywordTextBox.onkeyup=function(){
      if(this.value==key || T!=0) return;
      key=this.value;
      
      T=setTimeout(function(){
        //..... 触发搜索关键字
        T=0
      } ,500)}
      

  2.   

    其实我的意思就是
     按下一个字符后0.1秒内没按任何键,就开始搜索search()
    0.1秒里面如果按了,就再等0.1秒
    那么 如果输入Beijing的话,只需搜索一次2楼 T恒0啊,T++放什么地方
      

  3.   

     T= setTimeout (...) //setTimeout 会返回setTimeout 的句柄
      

  4.   

    延迟0.2秒执行, 如在0.2秒内再输入会清除上次的操作var timerID = 0;
    var delay = 200; //0.2秒
    oInput.onkeyup = function(){
        if(timerID > 0) 
            clearTimeout(timerID);
        timerID = setTimeout("搜索函数", delay);
    };
      

  5.   

    如果按住不放的话触发onkeyup吗