jQuery / AJAX自动完成,每个会话只查询一次MySQL表

时间:2012-05-03 07:28:02

标签: jquery mysql ajax

我正在使用jQuery / AJAX开发autosuggest(自动完成)功能。问题是我将使用的MySQL表有30,000条记录,服务器负载很高。因此,每次访问者按下按钮时,我都不想查询MySQL表,我宁愿每个用户会话查询一次。有没有选择来实现这个目标?也许一次缓存或检索30,000条记录并将其存储在某个地方?

谢谢,

Zolka

2 个答案:

答案 0 :(得分:0)

使用缓存选项。但它可以用户输入以前的值。其他明智的它击中了服务器。

$(function() {
    $("#empname").autocomplete(
    'getNames.action',
        {
            scroll:false,
            minChars:1,
            delay:0,
            width:200,
            autoFocus:true,
            cache:true,
            formatResult: function(data, value) {

              return value.split(".")[0];
            }
        });
});

答案 1 :(得分:0)

30,000条记录,有一把好钥匙,你可以很快得到结果。

通常情况下,您不希望在每次按键时都执行AJAX,但是您需要延迟用户输入(例如500ms)。

var t;
$('#textbox').keyup(function() {
    if (t) clearTimeout(t);
    t = setTimeout(function() {
        // AJAX call here
    }, 500);
});