jQuery 자동 완성을 사용하여 약 2000 개의 레코드 목록에서 결과를 보여줍니다. 이 목록은 필자의 견해로는 오랫동안이 모든 레코드를 검색하기 위해 좋은 필터가 필요합니다.jQuery 자동 완성 UI 모든 방향 검색
레이블 필드뿐 아니라 값 필드에서도 검색 할 수 있도록 소스를 이미 수정했습니다. 지금 내가 원하는 것은 "삼성 갤럭시 S4"를 찾을 수있는 "S4 갤럭시"를 검색 할 수 있다는 것입니다. 표준 jquery 자동 완성은 왼쪽에서 오른쪽으로 만 검색 할 수 있으므로 "galaxy s4"는 발견되지만 "s4 galaxy"는 검색되지 않습니다. 나는 또한 "gal s4"를보고 "Samsung Galaxy S4"를 찾고 싶다. 지금
var completeResults = [{
value: "S4 iv",
label: "Samsung Galaxy S4",
image: "samsung_galaxy_s_iv_1.jpg"
}, {
value: "stackoverflow",
label: "Nokia lumia 920",
image: "nokia_lumia_920_1.jpg"
}];
completeResults되어 경기가> "삼성 갤럭시 S4가"
전체 코드 내가 지금 아래 스탠드를 사용 굵게 만든 경우
은 추가, 그것은 좋은 것입니다 짧은 목록! Normaly 약 2000 기록.
function custom_source(request, response) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
response($.grep(completeResults, function (value) {
return matcher.test(value.value) || matcher.test(value.label);
}));
}
$("#s").autocomplete({
source: custom_source,
minLength: 0
}).data("ui-autocomplete")._renderItem = function (ul, item) {
var inner_html = "<a><img src='../img/type/120x200/" + item.image + "' width='21' height='35'/><span class='title'>" + item.label + "</span></a>";
return $("<li></li>")
.data("item.autocomplete", item)
.append(inner_html)
.appendTo(ul);
};
많은 레코드를 사용하면 서버에서 검색하는 것이 더 나을 것입니다. –
데이터베이스 쿼리가 적어지기 때문에 브라우저에서이 작업을 수행하려고합니다. 이 서버 측을 어떻게 처리 할 수 있습니까? PHP로? 데이터베이스를 계속 쿼리하고 싶지는 않습니다. 왜냐하면 매일 수천 명의 사람들이이 데이터베이스를 사용한다면 많은 데이터베이스 사용량을 얻을 수 있기 때문입니다! – Timo002
그건 사실인데, 확실히 트레이드 오프입니다. 웹 서버는 수천 개의 요청을 처리하도록 만들어졌습니다. 질문 하나 더 - 입력 한 경우 "노키아 삼성"두 결과를 모두 다시해야합니까? 또는 각 용어는 제안 항목에서 찾아야합니까? –