Parece que periodically_call_remote
está obsoleto en Rails 3, ¿alguna idea de cómo lograr la misma funcionalidad?Rails 3 equivalente para periodically_call_remote
Respuesta
que estaba buscando la manera correcta de hacerlo con Rails 3 pero ahora estoy seguro de que no hay un equivalente a periodically_call_remote en Rails 3. Para obtener exactamente la misma funcionalidad hecho con jQuery, he utilizado:
$(document).ready(
function(){
setInterval(function(){
$('#mydiv').load('/controller/action');
}, 3000);
});
Utilice setInterval
para ejecutar periódicamente una función que invoca una llamada AJAX. Si lo estuviera haciendo con jQuery, podría ser algo como:
var pollBackend = function() {
$.getJSON("/foo/bar/poll");
}
setInterval(pollBackend, 5000);
Esto intentará sondear la URL dada de datos JSON cada 5 segundos.
Si realmente quiere usarlo, entonces usted puede instalar el plugin legado que tiene este método:
http://github.com/rails/prototype_legacy_helper
Rails favorece EPU ahora.
Salida estos enlaces para obtener más información sobre la EPU en Rails 3:
http://railscasts.com/episodes/205-unobtrusive-javascript
http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/
lo hice un corto valoración crítica sobre esto en relación al prototipo y la etiqueta link_to_remote:
http://www.cowboycoded.com/2010/07/20/replacing-link_to_remote-with-ujs-in-rails-3-prototype/
¡Espero que esto ayude!
Esto también podría ser de ayuda: http://railscasts.com/episodes/229-polling-for-changes – johnmcaliley
esto es lo que necesita para una llamada ajax periódica, reemplazar some_path con su propia ruta REST:
<%= javascript_tag do -%>
$(document).ready(
function(){
setInterval(function(){
$.ajax({
url: "<%= some_path %>",
type: "GET",
dataType: "script"
});
}, 60000);
});
<% end -%>
El archivo index.js.erb se vería así:
$('#mydiv').html("<%= escape_javascript(render(:partial => 'my_partial')) %>");
Si desea seguir utilizando prototype.js, por lo que puede hacer lo siguiente:
<%= content_for :js do %>
new Ajax.PeriodicalUpdater("mydiv",
"/controller/action",
{ frequency: 5,
method: 'get' })
<% end %>
Más sobre Ajax.PeriodicalUpdater here.
- 1. Cómo desactivar "periodically_call_remote"
- 2. bash_completion para Rails 3
- 3. Rails 3 Sandbox consola
- 4. cache_money for Rails 3
- 5. Python 3 string.join() equivalente?
- 6. múltiples validaciones Rails 3 (carriles para Zombies; 2: 3)
- 7. Marco A/B para Rails 3?
- 8. Rails 3 Formulario para la acción personalizada
- 9. selector de color RGB para Rails 3
- 10. Recursos para aprender Ajax con Rails 3
- 11. ¿Buena aplicación base para Rails 3?
- 12. Aplicación de ejemplo para Rails 3?
- 13. Búsqueda de texto completo para Rails 3
- 14. Plugin de comentarios para Rails 3
- 15. Generador de andamios anidados para Rails 3?
- 16. Rails 3 protect_from_forgery problems
- 17. Rails 3 vs Sinatra
- 18. Rails 3 has_many changed?
- 19. Rails 3 new_record? obsoleto
- 20. Rails 3 y FCGI?
- 21. Rails 3 SSL Deprecation
- 22. Rails 3 Modificación updated_at
- 23. Rails 3 serializar
- 24. Rails 3 autocarga
- 25. Rails 3 Mysql Problems
- 26. Rails 3: HTTP_USER_AGENT
- 27. Rails 3 - Validación personalizada
- 28. Rails 3 en dreamhost?
- 29. Rails 3 Codificación :: CompatibilityError
- 30. Rails 3 find_or_create_by
Tratando de implementar esto, pero con dificultades. Si inserto este código en application.js, incluyo javascript porfaults en el encabezado, y tengo un elemento DOM con id = 'mydiv', entonces debería vincularse automáticamente, ¿correcto? Además, ¿cómo puedo actualizar dinámicamente la URL, por ejemplo, si tengo un recurso anidado para que tenga que cargar '/ controller /: id/action', donde: id se establece dinámicamente? –
Para hacer eso, simplemente agregue data-item-id a su elemento y cárguelo con .data() de jQuery y definitivamente puede hacer lo mismo con la URL. –