2016-11-24 4 views
8

jQuery 자동 완성 플러그인에 문제가 있습니다.jQuery 각 검색에서 성능 자동 완성

"item"이라는 용어로 여러 번 검색하면 처음에는 제대로 작동합니다. 마우스 오버시 CSS 클래스가 잘 추가되고 모든 것이 원활합니다. 팝업창을 닫고 모든 것을 느리게 할 때마다 다시 입력하면 팝업창이 나타납니다.

Chrome에서 매우 느려지므로 성능이 저하 될 수 있습니다. . https://jsfiddle.net/re9psbxy/1/

그리고 코드 : 여기

은 매우 간단한 코드와 바이올린입니다

var suggestionList = []; 
for (var i = 0; i < 200; i++) { 
    suggestionList.push({ 
    label: 'item' + i, 
    value: i 
    }); 
} 

//initialize jQueryUI Autocomplete 
jQuery('#autocomplete').autocomplete({ 
    source: suggestionList 
}); 

HTML :

<input type="text" id="autocomplete"/> 
+0

문제가 JQuery와-UI-1.12.1 발생 나를 위해 :

search: function(e,ui){ $(this).data("ui-autocomplete").menu.bindings = $(); } 

내가이 열린 JQuery와 UI의 버그 주변 일을 제안 게시 하지만 jquery-ui-1.10.2에 있지 않습니다. – Spikolynn

답변

13

내가 중 하나에 자동 완성과 같은 문제로 실행 나의 앱들. 자동 완성은 처음 열 때 매우 빠르지 만 몇 번 지나면 실제로 쓸모 없게됩니다. 자동 완성 기능을 사용하는 것으로 보이는 메뉴 위젯의 메모리 누수가 문제 인 것 같습니다. 당신은 자동 완성의 기능을 검색하려면이 옵션을 추가하여 문제를 볼 수 있습니다

search: function(e,ui){ 
console.log($(this).data("ui-autocomplete").menu.bindings.length); 
} 

당신이 검색 할 때마다, 당신은 바인딩의 길이가 성장을 계속 볼 수 있습니다. 단지 바인딩 매번 지우,이 문제를 해결하려면 검색 : https://bugs.jqueryui.com/ticket/10050

+1

오 이런, 내 하루를 구 했어요! –

+0

나는 이것을 몇 시간 동안 찾고 있었고, 완벽하게 작동했다. –