Buenas practicas con Javascript

27 views
Skip to first unread message

David Santamaria

unread,
Oct 9, 2011, 2:44:04 PM10/9/11
to jsmeetu...@googlegroups.com
Hola a todos,
A ver si aqui me podeis hechar una mano con una cosa que tengo entre manos.
Digamos que tenemos una aplicacion tipica, con su parte de admin y quiero que el mismo fichero .js se comparta entre 3 paginas distintas (create, show, edit), por poner un ejemplo.
Todas ellas estan usando jQuery y el tema es que cada una tiene distintas funciones (no muchas), y distinto "ready" comportamiento.
Ejemplo:

A.html
<script src="scriptA.js"/>

B.html
<script src="scriptA.js"/>

C.html
<script src="scriptA.js"/>

ScriptA.js
$(document).ready(function() {
   //Cosas de A
});

ScriptB.js
$(document).ready(function() {
   //Cosas de B
});
ScriptC.js
$(document).ready(function() {
   //Cosas de C
});


El tema es que me gustaria tener el mismo script para las 3 paginas para que este se cachee en el navegador y no haga distintas peticiones cada request.
Que haceis vosotros ante esto?
Un saludo.

--
David.

Turin

unread,
Oct 9, 2011, 3:00:14 PM10/9/11
to jsmeetu...@googlegroups.com
Quizá puedas definir una función en cada página y que el script común haga referencia a dicha función.

Iñigo Gonzalez Vazquez

unread,
Oct 9, 2011, 3:03:07 PM10/9/11
to jsmeetu...@googlegroups.com
Sería posible poner el $(document).ready en cada página y que este llame a una función distinta(dependiendo de la página) del archivo js?
 
Otra opción que se me ocurre es que el script mirase la url y en base a eso tenga un comportamiento u otro, aunque no es una solución que me guste mucho...

Turin

unread,
Oct 9, 2011, 3:17:09 PM10/9/11
to jsmeetu...@googlegroups.com
Eso lo había pensado, pero no creo que es mejor práctica dejar el código específico de cada página en su página (aunque si es mucho siempre puedes hacer un .js a cada página)

Turin

unread,
Oct 9, 2011, 3:17:59 PM10/9/11
to jsmeetu...@googlegroups.com
pero no creo que es mejor práctica -> pero creo que es mejor práctica

Xabier de Zuazo

unread,
Oct 9, 2011, 6:29:53 PM10/9/11
to jsmeetu...@googlegroups.com

Aupa David,

En mi humilde opinión, y teniendo mi js algo oxidado, creo que lo mejor
es hacer una cosa u otra NO en función de la página o URL en la que
estés, sino en función de los "objetos" que tengas. Es decir, por
ejemplo, si existe el div "create" haz tal cosa, si existe el div
"show" cual etc. Si los identificas por id, no debería producir una
perdida de rendimiento apreciable.

Lo de meter código js directamente en la página personalmente no lo
veo. Sería mezclar estructura y contenido con comportamiento.

Un saludo :)

--
Xabier de Zuazo

signature.asc

David Santamaria

unread,
Oct 10, 2011, 3:29:25 AM10/10/11
to jsmeetu...@googlegroups.com
Respondiendo un poco a todos :)
- Lo que quiero es no tener que incluir javascript en la pagina, lo que hago es poco pero me gustaria mantener las paginas lo mas "limpias" posibles.
- La idea que tengo inicialmente se aproxima un poco a lo que comenta Zuazo, ejemplo:

$(document).ready(function() {
        $('#elementoshow1').plugin1();
        $('#elementoedit2').plugin2();
        $('#elementoscreate3').plugin3();
});

Pero me parecia que de esas tres llamadas dos no hacen nada en cada pagina. Que decis? se queda asi?
Un saludo.
--
David.

Pablo Garaizar Sagarminaga

unread,
Oct 10, 2011, 3:37:29 AM10/10/11
to jsmeetu...@googlegroups.com
Hola,

El Mon, 10 Oct 2011 09:29:25 +0200
David Santamaria <d.high...@gmail.com> comentaba:

> $(document).ready(function() {
> $('#elementoshow1').plugin1();
> $('#elementoedit2').plugin2();
> $('#elementoscreate3').plugin3();
> });
> Pero me parecia que de esas tres llamadas dos no hacen nada en cada
> pagina. Que decis? se queda asi?

A mí me gusta así. Me parece que el resto de opciones funcionan bien en
nuestra cabeza, pero complican innecesariamente el código. ¿Qué se
gestiona más fácil, una línea de código o varios ficheros js cargados
condicionalmente?

Eso sí, por un poco de empatía hacia otros programadores que hereden
ese código, pondría un comentario antes diciendo que no todos los
selectores tienen que existir en todas las páginas o algo similar O:-D

PD: ¿hay ganas de volver a quedar? ¿qué temas quedaron en el tintero?
¿reanimamos los talleres?

--
Pablo Garaizar Sagarminaga
Universidad de Deusto
Avda. de las Universidades 24
48007 Bilbao - Spain

Phone: +34-94-4139000 Ext 2512
Fax: +34-94-4139101

Reply all
Reply to author
Forward
0 new messages