【问题标题】:What's the algorithm behind stack overflow's ajax tag search field堆栈溢出的ajax标签搜索字段背后的算法是什么
【发布时间】:2012-01-31 00:14:48
【问题描述】:

我想制作一个 ajax 自动完成字段,如堆栈溢出的标签搜索框(用于添加最喜欢的标签并为您的问题添加标签)。我以前每次 key 的时候都会调用 ajax,但我认为它效率不高。

我发现堆栈溢出做得很好。我猜它只会在密钥启动并且经过一段时间后才调用 ajax。然后我写了这些行来测试:

$("#a").keyup(function(){
    clearTimeout(c);
    var c=setTimeout(alert("keyup and 0.5s have passed"),500);
})

它会在按键后和 0.5 秒后发出警报,但它会在按键时发出几次警报。 clearTimeout() 是否假设停止执行 setTimeout()?为什么它不起作用?这样做的正确方法是什么?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    c 是一个局部变量,一旦函数返回,它的值就会丢失。试试这样的:

    var timeoutId = null;
    
    $("#a").keyup(function(){
        clearTimeout(timeoutId);
        timeoutId = setTimeout(alert("keyup after 0.5s"),500);
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-09
      • 2015-02-16
      • 1970-01-01
      • 2010-09-11
      • 1970-01-01
      • 2012-05-10
      • 2011-10-22
      • 1970-01-01
      相关资源
      最近更新 更多