J'essaie d'implémenter la mise en cache à l'aide de la saisie semi-automatique jQuery UI. J'utilise jQuery 1.4.4 et l'interface utilisateur 1.8.6
Voici le code de base que je suis arrivé travail:
$('#searchbox').autocomplete({
source: function(request, response) {
if (xhr === lastXhr) {
response($.map(data, function(item) {
return {
label: item.NAME + (item.PRFNM ? ' (' + item.PRFNM + ')' : '') + ', ' + item.JOBTITLE,
value: item.NAME
};
}));
}
});
}
});
Voici ma tentative pour obtenir la mise en cache de travailler à regarder l'exemple:
var cache = {},
lastXhr;
$('#searchbox').autocomplete({
source: function(request, response) {
var term = request.term;
if (term in cache) {
response($.map(cache[term], function(item) {
return {
label: item.NAME + (item.PRFNM ? ' (' + item.PRFNM + ')' : '') + ', ' + item.JOBTITLE,
value: item.NAME
};
}));
}
lastXhr = $.getJSON("getdata.php", request, function(data, status, xhr) {
cache[term] = $.map(data, function(item) {
return {
label: item.NAME + (item.PRFNM ? ' (' + item.PRFNM + ')' : '') + ', ' + item.JOBTITLE,
value: item.NAME
};
});
if (xhr === lastXhr) {
response($.map(data, function(item) {
return {
label: item.NAME + (item.PRFNM ? ' (' + item.PRFNM + ')' : '') + ', ' + item.JOBTITLE,
value: item.NAME
};
}));
}
});
}
});
Y a-t-il des preneurs?
Quel est le problème? –
Il ne cache pas comme il est censé être. – nolabel