Jimmyt1988 Jimmyt1988 -4 years ago 153
jQuery Question

Twitter jQuery typeahead - How to remove the cache

I made a query like this... and first time, it ran the filter... cool, and it worked...

But now there are more entries, and it seems to be running off of cache. How do I force it to stop using the cache?

var countries = new Bloodhound({
datumTokenizer: function (d) { return Bloodhound.tokenizers.whitespace(d.name); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 10,
prefetch: {
url: Url + '/Country/JsonList',
filter: function (list) {
return $.map(list, function (country) { return { name: country.Name }; });
}
}
});

countries.initialize();

$('.countries.typeahead').typeahead(null, {
displayKey: 'name',
source: countries.ttAdapter()
});

Answer Source

Add the ttl property to the filter... and set it to 1 not 0.

var countries = new Bloodhound({
    datumTokenizer: function (d) { return Bloodhound.tokenizers.whitespace(d.name); },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    limit: 10,
    prefetch: {
        ttl: 1,
        url: Url + '/Country/JsonList',
        filter: function (list) {
            return $.map(list, function (country) { return { name: country.Name }; });
        }
    }
});

countries.initialize();

$('.countries.typeahead').typeahead(null, {
    displayKey: 'name',
    source: countries.ttAdapter()
});

https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download