Sortables, acts_as_list and performance


I have a reordering feature for one of my models. It’s done with
Sortables JS component that sends an Ajax request with a hash of new
positions for each item after reordering, with the following action
that processes it:

def reorder
params[:pos].each do |id, pos|
head :ok

I’m using acts_as_list to recalculate positions.

Everything works, but I have a problem: for EVERY activity that was
moved there are 5 requests to the database (1 select and 4 updates,
which in their turn are quite CPU-intensive because position
recalculation involves updating most of the list items).

Did someone solve a similar problem? Any advices on making reordering
not so resource-hungry and slow?