Muy buenas,
Ante todo, permítanme saludarles, ya que soy nuevo en el foro. Me llamo Eneko, tengo 26 primaveras y soy ingeniero y apasionado de la informática (programación, ingeniería del software en metodologías ágiles, internet, IA, ...). Me encanta aprender cosas en internet y hablar con la gente, pero mi naturaleza desordenada me dificulta hacer todo lo que quisera.
Ahora el problema: estoy diseñando una aplicación en la que básicamente se muestran informes de tablas de bbdd. Estos informes se muestran mediante un
'control'-lo pongo entre comillas porque ahora mismo no es muy
reusable que se diga- hecho con HTML + javascript (librería YUI de
Yahoo para interfaces de usuario).
Lo que hace el control es crear una ventana que contiene una tabla
(objeto DataTable de YUI) que pide los datos por Ajax y se procesan y
muestran mediante Javascript.
El problema es que quiero poder empotrar los informes en cualquier
página HTML, de manera similar a la que se hace con los vídeos de
youtube, por ejemplo. El javascript del informe hace gran parte del
trabajo seleccionando elementos HTML (document.geElementById() o $()
para prototype), pero esta estrategia se vuelve inválida si se quieren
mostrar más de un informe en pantalla, ya que habría varios elementos
con Ids idénticas por lo que habría ambigüedad en la selección. Se
pueden hacer chapucillas como darle un id único a cada informe y crear
los ids internos concatenando la id única del informe, etc. , pero
ninguna de las chapuzas que se me ocurren me terminan de gustar.
Seguro que existe algún patrón de diseño que ayude en este aspecto,
pero no he encontrado nada. Por favor, cualquier sugerencia será
bienvenida y muy agradecida.
Por otra parte, una preguntilla: será posible insertar estos informes
en otras páginas (como blogs, etc...) que no pertenezcan a mi dominio?
ya que Ajax mediante XMLHttpRequest no permite hacer peticiones cross-
domain, no podría empotrar el control en páginas externas, no? Si es
así, alguna alternativa? (que no sea "usa Flash!")
Siento la chapa y muchas gracias por vuestro intereś.
Eneko