Bonjour,
J'essaye actuellement de recoder un système de spoiler sur une vue.
J'ai ce code dans ma vue index.html.erb
<%= link_to_remote "spoiler", :url => { :action => 'spoiler'...
Dans mon controller :
def spoiler
if request.xhr?
calculate textespoiler
end
end
Dans mon spoiler.rjs :
page.visual_effect :toggle_appear... (pour gerer l'effet visuel du
spoiler)
et
page.insert_html :bottom, "id_div", "textespoiler" (pour gerer
l'insertion du spoiler dnas la bonne balise)
Mon problème est que je voudrais que la requete xhr ne s'execute qu'une
seule fois, et quand l'utilisateur clique sur le bouton "spoiler" une
deuxième fois que le spoiler s'affiche mais sans être recalculé (d'ou
l'interet d'ajax).
D'autre part, mon spoiler s'affiche autant de fois que je clique sur le
bouton (normal j'ai pas de conditions dans le insert_html). Je passerais
à terme dans un systeme de render :partial je pense.
Une idée ?
Bonne journéé.
on 2008-08-07 10:09
on 2008-08-07 21:14
2008/8/7 Guillaume Morain <list-incoming@andreas-s.net>: > > def spoiler > if request.xhr? > calculate textespoiler > end > end def spoiler if request.xhr? calculate textespoiler if params[:cache] end end > > Dans mon spoiler.rjs : > > page.visual_effect :toggle_appear... (pour gerer l'effet visuel du > spoiler) > et > > page.insert_html :bottom, "id_div", "textespoiler" (pour gerer > l'insertion du spoiler dnas la bonne balise) page.visual_effect :toggle_appear page.insert_html :bottom "id_div", "textspoiler" unless params[:cache] if params[:cache] methode qui ajoute le param cache dans la partie qui fait la requete xhr end Ca peux être une idée simple de cache. Sinon tu as une bonne technique avec gestion de cache_page comme indiqué dans un railscast[1] [1] : http://railscasts.com/episodes/89-page-caching -- Cyril Mougel http://blog.shingara.fr
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.