Queremos generar contenido dinámico en una web, pero deseamos que esta vez sea el usuario el que, insertando un pequeño fragmento en HTML, pueda incluir ese contenido en cualquier página web. La idea original era usar un IFRAME, pero esto trae diferentes problemas (el menor de los cuales no son las poco estéticas barras de desplazamiento) Otra posibilidad es usar AJAX, pero eso obligaría al usuario a incluir las poco ligeras librerías de Prototype en su web.
Al final, optaremos por la solución más sencilla: incrustar el contenido en la web usando las etiquetas <SCRIPT ...></SCRIPT> y generar el contenido enviando sentencias document.writeln desde una plantilla RJS.
Nuestra prueba de concepto será hacer una pequeña aplicación Rails que cuando se la invoque con el mecanismo anterior, devuelva una de las célebres estrategias oblícuas de Brian Eno
La aplicación completa
Nuestro controlador será
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class EstrategiaController < ApplicationController def index @estrategias = [ "Remove specifics and convert to ambiguities", (...) "The tape is now the music" ] len = @estrategias.length @estrategia = @estrategias[rand(len)] end end |
Por último, la vista .rjs será:
1 2 3 |
page << "document.writeln('<span class=\"eno_estrategia\">')"; page << "document.writeln(\'#{@estrategia}\')"; page << "document.writeln('</span>');" |
La magia la hace el operador <<, que inyecta directamente la cadena que se le pasa en el bloque que luego se devuelve al navegador.
Podeis comprobar cómo invocar a esta pequeña aplicación creando un fichero .HTML e insertando el siguiente fragmento
1 2 |
<div>Eno dice: «<script type="text/javascript" src="http://estrategias.sobrerailes.com/estrategia"></script>» </div> |
1 Response to “Contenido dinámico con Javascript sin AJAX”
Sorry, comments are closed for this article.


May 3rd, 2006 at 03:13 AM No entiendo la utilidad de esto.