Autocomplete: Changed cache demo to cache all results.

Fixes #5398 - Remote-with-cache demo does not break if (cache.term == request.term) but executes another request.
This commit is contained in:
Scott González 2010-04-23 12:19:06 -04:00
parent 02c32959d9
commit e087e7dee0

View File

@ -12,36 +12,24 @@
<link type="text/css" href="../demos.css" rel="stylesheet" /> <link type="text/css" href="../demos.css" rel="stylesheet" />
<script type="text/javascript"> <script type="text/javascript">
$(function() { $(function() {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").attr("scrollTop", 0);
}
var cache = {}; var cache = {};
$("#birds").autocomplete({ $( "#birds" ).autocomplete({
minLength: 2,
source: function(request, response) { source: function(request, response) {
if (cache.term == request.term && cache.content) { if ( request.term in cache ) {
response(cache.content); response( cache[ request.term ] );
return;
}
if (new RegExp(cache.term).test(request.term) && cache.content && cache.content.length < 13) {
response($.ui.autocomplete.filter(cache.content, request.term));
return; return;
} }
$.ajax({ $.ajax({
url: "search.php", url: "search.php",
dataType: "json", dataType: "json",
data: request, data: request,
success: function(data) { success: function( data ) {
cache.term = request.term; cache[ request.term ] = data;
cache.content = data; response( data );
response(data);
} }
}); });
},
minLength: 2,
select: function(event, ui) {
log(ui.item ? ("Selected: " + ui.item.value + " aka " + ui.item.id) : "Nothing selected, input was " + this.value);
} }
}); });
}); });
@ -56,11 +44,6 @@
<input id="birds" /> <input id="birds" />
</div> </div>
<div class="ui-widget" style="margin-top:2em; font-family:Arial">
Result:
<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>
</div><!-- End demo --> </div><!-- End demo -->
<div class="demo-description"> <div class="demo-description">