[ruby-it] Ajax, Observers e autorefresh

Pietro Giorgianni giorgian a gmail.com
Mer 10 Mar 2010 11:16:06 CET


Il 10 marzo 2010 10.51, Luca G. Soave <luca.soave a gmail.com> ha scritto:
>
> Ciao a tutti, mi servirebbe una dritta su come implementare
> l'autorefresh di una lista di posts.
>
> L'idea e', che se un utente sta guardando una pagina che lista i suoi
> post e quelli del suo gruppo, dovrebbe vedere arrivare i nuovi post
> eseguiti dagli altri in tempo reale, cioe dinamicamente senza fare il
> reload della pagina.
>
> Non ho molta dimestichezza con Ajax, ma dovrebbe avere a che fare con i
> metodi di ActionView::Helpers::PrototypeHelper:
>
>    * build_callbacks
>    * build_observer
>    * button_to_remote
>    * evaluate_remote_response
>    * form_remote_for
>    * form_remote_tag
>    * link_to_remote
>    * method_option_to_s
>    * observe_field
>    * observe_form
>    * options_for_ajax
>    * periodically_call_remote
>    * remote_form_for
>    * remote_function
>    * submit_to_remote
>    * update_page
>    * update_page_tag

Ciao,

premetto che, dopo un periodo iniziale irto di difficoltà, ho
abbandonato del tutto rjs e i PrototypeHelper (e veramente anche
Prototype, perché scoprire jQuery è stato un po' come quando cerchi di
lavorare a tentoni nel buio e a un certo punto accendono la luce).

Quello che ti serve è periodically_call_remote; la cosa più pulita è
avere un metodo di un qualche controller che ti restituisca un json
contenente una variabile boolean che ti dica se è necessario il
refresh oppure no, in modo che la risposta sia sempre rapidissima.

Poi, quando ti serve fare il refresh, potresti fare una nuova chiamata
all'index di home (ad esempio con remote_function), da cui farti
restituire solo il partial da rimpiazzare (la funzione potrebbe anche
usare rjs, volendo...).


La questione è se vuoi fare tutto con gli helper di rails o se vuoi
fare tutto con javascript.


pietro


More information about the Ml mailing list