示例JQuery自动完成代码。我想要一个可以通过两个单独的自动完成实例调用的函数,它允许我共享相同的功能而无需重写 代码。
$("tags1").autocomplete(
{
source: availableTags
});
确保清楚。我不想重复代码。所以当我在其他地方使用另一个自动完成时,我想引用自动完成中包含的代码,而不是重复代码(我只是重复自己)
答案 0 :(得分:1)
您可以制作手动ajax get请求以获取数据,将其存储在变量中,然后将该变量存储为两个自动填充。
var cache = {},
requestData = function(request, response) {
var term = request.term;
if(term in cache) {
response(cache[term]);
return;
}
$.getJSON("search.php", request, function(data, status, xhr) {
cache[term] = data;
response(data);
});
};
$("#birds").autocomplete({
minLength: 2,
source: requestData
});
$("#moreBirds").autocomplete({
minLength: 2,
source: requestData
});
来源:http://jqueryui.com/resources/demos/autocomplete/remote-with-cache.html
但是你应该从服务器发送缓存头,告诉客户端缓存请求的结果。然后当第二个自动完成程序发出相同的请求时,浏览器不必再次点击服务器。
这篇文章很精彩:https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers