Jquery自动完成:只加载一次源代码

时间:2016-04-21 16:02:50

标签: jquery ajax autocomplete

我正在尝试jquery自动完成,但我希望源只加载一次。 我每次输入一封信时都不想调用ajax动作类。我也不想使用缓存,因为它是浏览器级缓存。所以基本上我需要它只想加载我的列表一次并在其上使用自动完成。这可能吗?任何想法都会非常有用..提前谢谢

2 个答案:

答案 0 :(得分:1)

您可以延迟通话。 看到: Javascript onkeyup delayed function call

var _timer = 0;
function DelayedCallMe(num) {
    if (_timer)
        window.clearTimeout(_timer);
    _timer = window.setTimeout(function() {
        callMe(num);
    }, 500);
}

然后在onkeyup中调用该函数:

<input type="text" onkeyup="DelayedCallMe(200);"/>

答案 1 :(得分:0)

进行一次ajax调用,并在成功时构建自动完成功能:

$.getJSON({
    url: 'remote_url/',
    type: 'GET',
    success: function (data) {
      $('#autocomplete').autocomplete({
        lookup: data,
        onSelect: function (suggestion) {
          console.log(suggestion)
        }
      });
    },
    error: function (res) {
      console.log(res)
    }
  });