Mi piacerebbe avere ogni modello a impulsi ogni volta che viene eseguito il rendering. Per avere uno strumento di debug visivo per vedere cosa viene reso. Quindi immagino qualcosa del genere quando viene reso un modello (un piccolo segmento), il suo colore di sfondo è impostato su rosso e quindi questo colore rosso si attenua lentamente nel colore di sfondo originale o qualunque sia lo sfondo (anche se era trasparente). Quindi se vedo che qualcosa è tutto il tempo rosso, so che viene ridisegnato tutto il tempo.Pulire il modello ogni volta che viene eseguito il rendering in Meteor
6
A
risposta
2
Sulla base del codice @Hubert OG e un'idea da this blog post, ho fatto il seguente codice di debug per il rendering Meteor:
pulseNode = (i, node) ->
return unless node.style
$node = $(node)
prePulseCss = $node.data('prePulseCss') ? node.style.cssText
prePulseBackgroundColor = $node.data('prePulseBackgroundColor') ? $node.css('backgroundColor')
$node.data(
'prePulseCss': prePulseCss
'prePulseBackgroundColor': prePulseBackgroundColor
).css('backgroundColor', 'rgba(255,0,0,0.5)').stop('pulseQueue', true).animate(
backgroundColor: prePulseBackgroundColor
,
duration: 'slow'
queue: 'pulseQueue'
done: (animation, jumpedToEnd) ->
node.style.cssText = prePulseCss
).dequeue 'pulseQueue'
pulse = (template) ->
$(template.firstNode).nextUntil(template.lastNode).addBack().add(template.lastNode).each pulseNode
_.each Template, (template, name) ->
oldRendered = template.rendered
counter = 0
template.rendered = (args...) ->
console.debug name, "render count: #{ ++counter }"
oldRendered.apply @, args if oldRendered
pulse @
1
Ecco un semplice battito di ciglia. L'animazione del colore di sfondo richiede librerie aggiuntive, vedere jQuery animate backgroundColor.
var pulseNode = function(node) {
if(!node.style) return;
var prev = node.style['background-color'] || 'rgba(255,0,0,0)';
$(node).css('background-color', 'red');
setTimeout(function() {
$(node).css('background-color', prev);
}, 1000);
};
pulse = function(template) {
for(var node = template.firstNode; true; node = node.nextSibling) {
pulseNode(node);
if(node === template.lastNode) return;
}
}
Ora, per ogni modello che si desidera utilizzare questo, do
Template.asdf.rendered = function() {
pulse(this);
}
Problemi correlati
- 1. come incrementare il valore del campo ogni volta che viene eseguito il test del selenio?
- 2. Gli indirizzi dei puntatori cambiano ogni volta che il programma viene eseguito in C?
- 3. Devo "aggiungere un file" ogni volta che viene eseguito il commit?
- 4. È necessario pulire l'intero progetto Android in Eclipse ogni volta che viene modificato un file XML
- 5. Rilevamento ogni volta che il socket viene disconnesso utilizzando select()
- 6. Il rendering parziale viene eseguito due volte in ActiveAdmin
- 7. Cron job che crea file vuoti ogni volta che viene eseguito
- 8. Il modello 3D non viene visualizzato durante il rendering
- 9. rails content_for non viene eseguito durante il rendering?
- 10. Il progetto di libreria Xcode 7.3 viene compilato ogni volta
- 11. come pulire correttamente il modello di visualizzazione?
- 12. Che cos'è il modello di concorrenza di Meteor?
- 13. Il demone dello chef viene eseguito ogni 30 minuti
- 14. Come impostare che il client di test WCF verrà eseguito ogni volta che il servizio è in esecuzione
- 15. Il segnale di evento viene emesso due volte ogni volta
- 16. Il database Android viene ricreato ogni volta che viene avviata l'applicazione
- 17. Metodo C# che viene eseguito dopo il caricamento dell'assieme
- 18. Il hook after_validation viene chiamato ogni volta su Active Record?
- 19. Discussione viene eseguito solo una volta
- 20. setTimeout viene eseguito solo una volta?
- 21. Come posso ascoltare quando un modello viene renderizzato in Meteor?
- 22. setInterval callback viene eseguito solo una volta
- 23. Aggiunta di codice al plugin che viene eseguito solo la prima volta che viene attivato?
- 24. In che modo viene eseguito il 302 Redirect?
- 25. è una volta che il controller viene eseguito più volte su Jmeter?
- 26. Modello Meteor ricarica infinito
- 27. JSON.stringify sfugge le doppie virgolette ogni volta che viene stringa
- 28. GWT Maven Plugin viene ricompilato ogni volta
- 29. Un metodo che viene eseguito ogni volta che si accede a una proprietà di classe (ottieni o imposta)?
- 30. Perdita di memoria ogni volta che viene rilasciato UIScrollView
Se si utilizza jQuery per l'impostazione di CSS statici, è possibile utilizzare anche 'animate', senza librerie aggiuntive, no? – Mitar
Il problema che sto avendo è che non ripristina lo sfondo allo stato originale. – Mitar