Scriptaculous autocompletion LIMIT and ajax vs. local


#1

Hi,

I am using scriptaculous ajax autocompletion (not local autocompletion).
I have 2 questions:

1 - The database query being sent to the server always has LIMIT 10. I
don’t want to have a limit, but I just can’t for the life of me find
where this limit is set in the code. I did see “choices: 10” in
controls.js but that’s for autocompleter.Local, which I don’t use, and
changing it has no effect. Also, I can’t see setting the limit as being
a part of the options array. How do I remove it?

2 - I am debating whether to use the ajax or local autocompletion. The
autocomplete values are to be retrieved from a table with about 2000
values, that don’t change frequently at all. On one hand I don’t want to
use ajax since it involves a lot of db queries, and on the other hand,
with local, I don’t know if injecting about 2000 values (avg 10 bytes
each) into the page is a good idea (or is it not a big deal?). Any
advice?

Feedback is very appreciated!
Alon.


#2

On Fri, Jun 02, 2006 at 02:37:24AM +0200, Alon G. wrote:

2 - I am debating whether to use the ajax or local autocompletion. The
autocomplete values are to be retrieved from a table with about 2000
values, that don’t change frequently at all. On one hand I don’t want to
use ajax since it involves a lot of db queries, and on the other hand,
with local, I don’t know if injecting about 2000 values (avg 10 bytes
each) into the page is a good idea (or is it not a big deal?). Any
advice?

If the data don’t change during the lifetime of the page input form,
you’re only talking about 20k … which is probably less than one of the
image files you’re probably using elsewhere :slight_smile:

You could decide to minimise that 20k by using some sort of unique
pruning/compression, and expand the list when it gets to the client end,
but that sounds like too much hard work :slight_smile: Just enabling compression in
yout HTTP server will probably achieve greater savings :slight_smile:

-jim


#3

If the data don’t change during the lifetime of the page input form,
you’re only talking about 20k … which is probably less than one of the
image files you’re probably using elsewhere :slight_smile:

ah, good point! puts things in perspective :slight_smile:

thanks Jim. appreciated.


#4

Anybody knows the answer to the LIMIT question?


#5

On Jun 2, 2006, at 15:19, Alon G. wrote:

Anybody knows the answer to the LIMIT question?

I guess you want:

auto_complete_for :post, :title, :limit => 15, :order =>
‘created_at DESC’

For full generality the contract is you write an action with
“auto_complete_for” prepended to the model and attribute names like
this, given you want to autocomplete for :card, :back in the form:

def auto_complete_for_card_back
@words = Word.find(
:all,
:conditions => [‘word LIKE ?’, params[:card][:back] + ‘%’],
:limit => 10,
:order => ‘word ASC’
)
render :layout => false
end

and generate a list as view:

    <% for word in @words %>
  • <%= word.word %>
  • <% end %>

Does that help?

– fxn


#6

Xavier N. wrote:

Does that help?

yes! thanks a lot, exactly what I was looking for.

Alon.