java 自动补全、就像百度似的。js和java代码怎么写?

java自动补全、就像百度似的。js和java代码怎么写?从数据库中查询出来的数据。... java 自动补全、就像百度似的。js和java代码怎么写?从数据库中查询出来的数据。 展开
 我来答
百度网友5ba75e4
2015-12-08 · TA获得超过2045个赞
知道大有可为答主
回答量:1775
采纳率:60%
帮助的人:983万
展开全部
原理很简单,但实现很复杂。

如果是代码补全的,一般是通过反射去获取类的一些信息,然后反馈给用户,用于自动填充。

如果是数据库中有的,有3种解决方案,对应2个不同的场景。

第一个场景:访问人数不多,项目不大,服务器资源空闲程度高。对应的方案,直接针对数据库进行关键字模糊搜索。简单粗暴,实现技术要求很低。优点开发难度低,架构简单,缺点匹配程度可能不满足当前需求

第二个场景:访问人数多,服务器资源利用率要求高。对应的方案,建立目录缓存(也可能是NOSQL数据库),对关键字在缓存(NOSQL数据库)进行模糊查找并建立更新机制,但不能全完做到实时同步。优点开发难度相对较高,架构难度一般,缺点用户体验可能不好。

最后一种解决方案,建立大数据平台,使用搜索引擎进行搜索,搭配机器学习提高准确率。优点就是相对其他的基本没有缺点。
丶小四灬灬
2015-12-08 · 超过21用户采纳过TA的回答
知道答主
回答量:92
采纳率:100%
帮助的人:41.1万
展开全部
可以用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
});
});
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式