Sono entusiasta turbolinks3 (permette di eseguire il rendering solo parziali e non ricaricare tutto il corpo) Si può leggere di più su di esso da qui: https://github.com/rails/turbolinks/blob/master/CHANGELOG.md E 'incredibile, ma ho un problema: Nei browser che non supportano pushState (ad esempio, ad esempio 8/9), non so come gestire il comportamento. Mi danno questo errore su IE8:Turbolinks 3 e il rendering di una parziale
Could not set the innerHTML property. Invalid target element for this operation.
Il mio codice Controller è:
def create
@post = Post.find(params[:post_id])
if @post.comments.create(comment_params)
render '_comment', change: [:comments, :super_test], layout: false, :locals => { comment: @post.comments.last }
else
render json:'error'
end
end
'soluzione' A potrebbe essere che faccio:
redirect_to @post, change: [:comments, :super_test]
Ma allora il problema è che risponda con un sacco di dati che non ho bisogno! (e il tempo di risposta è più grande) Quindi non voglio davvero trovare un'altra soluzione.
Come posso risolvere questo problema? Ho pensato di 2 soluzioni: 1) Utilizzare history.js/Modernizr per polyfill il pushState su vecchi browser
Ma ho provato ma ottengo sempre lo stesso errore (come se I don' t hanno Modernizr)
dettagli di errore Webpage
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) Data e ora: sab, 25 apr 2015 17:28:52 UT C
Messaggio: Impossibile impostare la proprietà innerHTML. Elemento di destinazione non valido per questa operazione. Linea: 26 Char: 30464 Codice: 0 URI: https://stark-forest-5974.herokuapp.com/assets/application-83a3aa4fd4a1ee124da87760bfdca86febd4fc1cb8a13167c892a15ce3caa53d.js
2) Trovare un modo per il controllo se la richiesta è fatta da turbolinks/pjax o no ... e utilizzare il rendering condizionato o redirect_to
- ma non ho idea su come posso farlo, perché turbolinks non invia un'intestazione specifica come fa jquery-pjax
Qualche suggerimento? Lo apprezzo molto!
PS: per favore non suggerirmi backbone/angular/ember/react, li conosco già (backbone), ma voglio provare i turbolinks.
Dove riesci a capirlo? – Mohamad