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