Your data set is filtered when it is transferred as a local object, but not filtered when using a callback (will it be the responsibility of the programmers).
When using source: data
autocomplete filters the result set for you:
response($.ui.autocomplete.filter(array, request.term));
When using the source: function(request, response) { response(data) }
callback, filtering is not applied, so your page generates markup for 1.3 MB json.
When autocomplete downloads data from a local source, it caches the data. When it is retrieved remotely, it is not cached by default.
The jQuery UI AutoFill documentation explains the behavior and suggests caching for a remote call.
http://jqueryui.com/demos/autocomplete/#remote-with-cache
Strike>
source share