2009-10-19 6 views

Répondre

1

Il y a toujours la solution onload.

Selon vous où vous avez définir la balise body:

<body onload="<%= remote_function(==same options used with periodically_call_remote==) %>" > 

qui fera appel à la fonction à distance de la charge, ainsi que laisser la magie impliqué periodically_call_remote appellent à l'intervalle souhaité. Voyant comment l'horloge commence par rapport à l'intervalle periodically_call_remote à peu près en même temps que l'onload démarre. Vous devriez obtenir la fonctionnalité que vous voulez.

+0

Eh bien, cela appeler onclick, mais je sais ce que vous entendez: P Je fini par utiliser la solution remote_function. –

+0

oups. J'ai copié l'instruction onclick à partir d'un autre code que j'avais et j'ai oublié de la changer en onload. – EmFi

0

Cette solution n'est pas parfaite, mais la fonction distante est invoquée dans la première milliseconde.

def periodically_call_remote_starting_now(options = {}) 
    page.call("starting_now_count = 0") 
    periodically_call_remote (options.merge(:frequency => 0.001, :condition => "++starting_now_count == 1")) 
    periodically_call_remote (options) 
end 
0

Ok, je n'ai pas assez de réputation pour commenter le post de KandadaBoggu, en écrivant mon commentaire comme réponse.

J'ai aimé la réponse de KandadaBoggu, mais j'ai dû apporter quelques modifications pour que la méthode d'assistance fonctionne. Le code que j'ai trouvé est ci-dessous. N'hésitez pas à m'écrire si mes changements sont noobish (mais mieux encore, commentez et faites savoir à tout le monde pourquoi). Mes modifications au code de KandadaBoggu sont les suivantes:

def periodically_call_remote_starting_now(options = {})  
    result = "" 
    result << javascript_tag("starting_now_count = 0;") 
    result << periodically_call_remote(options.merge(:frequency => 0.001, :condition => "++starting_now_count == 1")) 
    result << periodically_call_remote(options) 
end 

Sinon, je reçois l'erreur suivante:

undefined local variable or method `page' for #<ActionView::Base:0x7fc37a6e2658>