http://en.wikipedia.org/wiki/Race_condition

http://api.jquery.com/jQuery.queue/




On Dec 16, 2013, at 11:30 AM, Dave Castellano wrote:

> Hello,
> 
> I have a weird problem that seems way over my skill level so could use
> even some simple suggestions to point me in the right direction.
> I have a set of 6 chained dropdown menus that work fine on my computer,
> but do not retain the correct selections if I make the menu selections
> too quickly on the Heroku server.
> 
> Each time a selection is made from a dropdown, the session data is
> updated with the following jQuery/ Ajax:
> 
>    # If BOOK dropdown clicked on.
>    chapters = $('#chapters').html()
>    $('#books').change ->
>      book = $('#books :selected').text()
>      book_id = $('#books :selected').val()
>      escaped_book = book.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g,
> '\\$1')
>      options =
> $(chapters).filter("optgroup[label='#{escaped_book}']").html()
>      options = options.replace('selected="selected"', "")
>      options = ('<option value="">Select a Chapter</option>' + options)
>      $.ajax(
>          url: '/dropdowns/update_image_book',
>          data:  "image_book_id=" + book_id)
>      if options
>        $('#chapters').html(options)
>        $('#chapters').prop('disabled', false)
>        $('#sections').html('<option value="">Select a
> Section</option>')
>        $('#sections').prop('disabled', true)
>        $('#subsections').html('<option value="">Select a
> Subsection</option>')
>        $('#subsections').prop('disabled', true)
>        $('#minisections').html('<option value="">Select a
> Topic</option>')
>        $('#minisections').prop('disabled', true)
>      else
>        $('#chapters').empty()
> Here is controller:
> 
>  def update_image_book
>    session[:image_book_id] = params[:image_book_id]
>    session[:image_chapter_id] = ""
>    session[:image_section_id] = ""
>    session[:image_subsection_id] = ""
>    session[:image_minisection_id] = ""
>    redirect_to pictures_path
>  end
> 
> And the view:
> <%= select_tag :books,
> option_groups_from_collection_for_select(Subject.order(:title), :books,
> :title, :id, :title, get_id_from_session(:book)), :prompt => "Select a
> Book", :disabled => true %>
> 
> After looking at the heroku logs, it looks like if I make the selections
> too quickly, the most recent selection runs before the line
> 2013-12-16T15:54:23.707522+00:00 heroku[router]: at=info method=GET
> path=/dropdowns/update_image_book?image_book_id=3
> host=cryptic-mesa-2105.herokuapp.com fwd="75.118.31.205" dyno=web.1
> connect=13ms service=32ms status=302 bytes=113
> has a chance to run.
> 
> Is this possible, and if so is there a better way to do this?
> 
> Dave.
> 
> -- 
> Posted via http://www.ruby-forum.com/.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to rubyonrails-talk+unsubscr...@googlegroups.com.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rubyonrails-talk/212adbdf94acd401e3f6172022c4a896%40ruby-forum.com.
> For more options, visit https://groups.google.com/groups/opt_out.
> 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/5F8EDE0B-467E-4782-9409-A7B54BA8B13C%40datatravels.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to