当在input里输入单词时,自动下拉出相关的关键词。
但是有时输入很快的时候,下拉提供的相关关键词就来不及反应。
有没有较好的解决办法?
ps:关键词存在mysql,也设置了索引。
获取的时候用的$.post
当在input里输入单词时,自动下拉出相关的关键词。
但是有时输入很快的时候,下拉提供的相关关键词就来不及反应。
有没有较好的解决办法?
ps:关键词存在mysql,也设置了索引。
获取的时候用的$.post
想提高下拉的速度,我觉得需要优化的点,当然.这不能代表所有.上面也提到了,所有的历史记录可以存到redis中,那为什么不粗暴一点,将整个搜索的关键词存进去了.当遇到没有的关键词时,在去实时搜索.
第二,是否应该考虑一下代码缓存.来提高代码执行的效率.
第三,如果不是特殊情况,要考虑到是否需要实时来响应.毕竟数据库的瓶颈在那里.这个时候,redis的作用就凸显出来了.
第四.楼上也提到了,sphinx这个东东,我就不提了,实际上有很多的搜索索引.具体,请看一下php的官网推荐的
以上乱写一同,不同之处,请指出
用Autocomplete,设置一些联想关键字。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI 自动完成(Autocomplete) - 默认功能</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link rel="stylesheet" href="http://jqueryui.com/resources...;>
<script>
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
</head>
<body>
<div class="ui-widget">
<label for="tags">标签:</label>
<input id="tags">
</div>
</body>
</html>
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
1.热门词对应的数据或者搜索历史对应的数据缓存到redis中
2.使用sphinx