java 自动补全、就像百度似的。js和java代码怎么写?
2个回答
展开全部
原理很简单,但实现很复杂。
如果是代码补全的,一般是通过反射去获取类的一些信息,然后反馈给用户,用于自动填充。
如果是数据库中有的,有3种解决方案,对应2个不同的场景。
第一个场景:访问人数不多,项目不大,服务器资源空闲程度高。对应的方案,直接针对数据库进行关键字模糊搜索。简单粗暴,实现技术要求很低。优点开发难度低,架构简单,缺点匹配程度可能不满足当前需求
第二个场景:访问人数多,服务器资源利用率要求高。对应的方案,建立目录缓存(也可能是NOSQL数据库),对关键字在缓存(NOSQL数据库)进行模糊查找并建立更新机制,但不能全完做到实时同步。优点开发难度相对较高,架构难度一般,缺点用户体验可能不好。
最后一种解决方案,建立大数据平台,使用搜索引擎进行搜索,搭配机器学习提高准确率。优点就是相对其他的基本没有缺点。
如果是代码补全的,一般是通过反射去获取类的一些信息,然后反馈给用户,用于自动填充。
如果是数据库中有的,有3种解决方案,对应2个不同的场景。
第一个场景:访问人数不多,项目不大,服务器资源空闲程度高。对应的方案,直接针对数据库进行关键字模糊搜索。简单粗暴,实现技术要求很低。优点开发难度低,架构简单,缺点匹配程度可能不满足当前需求
第二个场景:访问人数多,服务器资源利用率要求高。对应的方案,建立目录缓存(也可能是NOSQL数据库),对关键字在缓存(NOSQL数据库)进行模糊查找并建立更新机制,但不能全完做到实时同步。优点开发难度相对较高,架构难度一般,缺点用户体验可能不好。
最后一种解决方案,建立大数据平台,使用搜索引擎进行搜索,搭配机器学习提高准确率。优点就是相对其他的基本没有缺点。
展开全部
可以用jquery autocomplete ,文档很清楚的
参考代码如下:
$(function() {
var cache = {};
$("#fundcode").autocomplete({ //输入框提示
source: function(request, response) {
var term = request.term;
//先查询缓存,如果缓存为空则ajax查询
if (term in cache) {
data = cache[term];
response($.map(data.obj, function(item) {
return { label: item.c_fundname, value: item.c_fundcode }
}));
} else {
$.ajax({
url: "${ctx}/fundInfoController.do?getfundlist",
dataType: "json",
data: {
key: request.term
},
success: function(data) {
if (data.obj.length) {
cache[term] = data; //数据存入缓存
response($.map(data.obj, function(item) {
return { label: item.c_fundname, value: item.c_fundcode }
}));
}
}
});
}
},
select: function(event, ui) {
//提交搜索...
//alert(ui.item.label);
$("#fundname").val(ui.item.label);
},
minLength: 2,
autoFocus: false,
delay: 500
});
});
参考代码如下:
$(function() {
var cache = {};
$("#fundcode").autocomplete({ //输入框提示
source: function(request, response) {
var term = request.term;
//先查询缓存,如果缓存为空则ajax查询
if (term in cache) {
data = cache[term];
response($.map(data.obj, function(item) {
return { label: item.c_fundname, value: item.c_fundcode }
}));
} else {
$.ajax({
url: "${ctx}/fundInfoController.do?getfundlist",
dataType: "json",
data: {
key: request.term
},
success: function(data) {
if (data.obj.length) {
cache[term] = data; //数据存入缓存
response($.map(data.obj, function(item) {
return { label: item.c_fundname, value: item.c_fundcode }
}));
}
}
});
}
},
select: function(event, ui) {
//提交搜索...
//alert(ui.item.label);
$("#fundname").val(ui.item.label);
},
minLength: 2,
autoFocus: false,
delay: 500
});
});
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询