Rails 3 equivalente per periodically_call_remote

Sembra che periodically_call_remote sia deprecato in Rails 3, qualche idea su come ottenere la stessa funzionalità?

Stavo cercando il modo giusto per farlo con Rails 3 ma ora sono sicuro che non ci sia l’equivalente di periodically_call_remote in Rails 3. Per ottenere la stessa identica funzionalità fatta con jQuery, ho usato:

 $(document).ready( function(){ setInterval(function(){ $('#mydiv').load('/controller/action'); }, 3000); }); 

Se vuoi davvero usarlo, allora puoi installare il plugin legacy che ha questo metodo:

http://github.com/rails/prototype_legacy_helper

Rails favorisce UJS ora.

Dai un’occhiata a questi link per maggiori informazioni su UJS in Rails 3:
http://railscasts.com/episodes/205-unobtrusive-javascript
http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/

Ho fatto una breve revisione su questo in relazione al prototipo e al tag link_to_remote:
http://www.cowboycoded.com/2010/07/20/replacing-link_to_remote-with-ujs-in-rails-3-prototype/

Spero che questo ti aiuti!

Usa setInterval per eseguire periodicamente una funzione che richiama una chiamata AJAX. Se lo stavi facendo con jQuery, potrebbe essere qualcosa del tipo:

 var pollBackend = function() { $.getJSON("/foo/bar/poll"); } setInterval(pollBackend, 5000); 

Questo tenterebbe di eseguire il polling dell’URL specificato per i dati JSON ogni 5 secondi.

Se vuoi continuare a utilizzare prototype.js, puoi fare quanto segue:

 <%= content_for :js do %> new Ajax.PeriodicalUpdater("mydiv", "/controller/action", { frequency: 5, method: 'get' }) <% end %> 

Maggiori informazioni su Ajax.PeriodicalUpdater qui .

Questo è ciò di cui hai bisogno per una chiamata ajax periodica, sostituisci some_path con la tua rotta RESTful:

 <%= javascript_tag do -%> $(document).ready( function(){ setInterval(function(){ $.ajax({ url: "<%= some_path %>", type: "GET", dataType: "script" }); }, 60000 ); }); <% end -%> 

Il file index.js.erb sarebbe simile a questo:

 $('#mydiv').html("<%= escape_javascript( render( :partial => 'my_partial' ) ) %>");