Mejorando el código

08/02/2007 - 09:47 por Alhambra-Eidos Kiquenet | Informe spam
Hola,

tengo una página aspx que utiliza javascript así:


<script language="javascript" type="text/javascript">
//<!--
//<![CDATA[
var ID_CAMPO_HIDDEN_OBSERVACIONES = '<%=
hiddenSeleccionFilaObservaciones.ClientID %>';

var MSG_OBSERVACION_NO_SELECCIONADA = "<%=
Util.Cliente.Recursos.VisadoPantalla.CentroControlObservaciones_MsgJavascriptObservacionNoSeleccionada %>";

var MSG_CONFIRMACION_BORRADO_OBSERVACION = "<%=
Util.Cliente.Recursos.VisadoPantalla.CentroControlObservaciones_MsgJavascriptConfirmacionBorradoObservacion %>";

var HIDDEN_OBSERVACIONES = null;

var IDFILA1 = "fila1Observaciones";
var IDFILA2 = "fila2Observaciones";
var IDFILA3 = "fila3Observaciones";

...
//]]>
//-->
</script>

Como veis aparecen expresiones de tipo
"<%=
Util.Cliente.Recursos.VisadoPantalla.CentroControlObservaciones_MsgJavascriptObservacionNoSeleccionada %>";

Lo veo algo como código tipo "spaguetti". ´Cuál sería una buena forma de
trabajar en estos casos ??

Haciendo un Register del código Javascript ?

He pensado también que se puede tener todo el javascript en un fichero de
recursos y de alguna forma acceder a ese código y hacer el Register
ScriptBlock. Lo que no sé si tendrá alguna incidencia en el rendimiento ,
accediendo al recurso para obtener el código.

Cualquier alternativa que quieran indicarme se lo agradecería.

Saludos.

http://www.alhambra-eidos.com/web2005/index.html
www.kiquenet.net

Preguntas similare

Leer las respuestas

#1 Alhambra-Eidos Kiquenet
08/02/2007 - 11:55 | Informe spam
Hola, no me refería a eso. El ClientID lo tengo.

Me refiero que en el código de la página, viene el javascript y entre medias
comandos o expresiones de servidor del tipo

<%= expresion %>

Y lo que pretendía es eso, entremezclar código javascript y esas expresiones.

Mi idea era incluir el código javascript en recursos, lo malo que si
penaliza el rendimiento mi jefe de proyecto me corta la cabeza... :-)

Saludos.

"Roberto M. Oliva" wrote:


Si te refieres a que el nombre que da ASP.NET a los controles despues
de renderizarlos es muy largo, lo que puedes hacer es acceder a su ID
a traves el propiedad: ClientID (te pongo el codigo un poco de
memoria):

// En javascript:

var object = document.getElementById ( <%= txtObservaciones.ClientID
%> );

// El correspondiente control servidor:
<asp:Text id="txtObservaciones" />

Espero que sea esto lo que buscas

Un saludo
Roberto M. Oliva


Eso te pasa porque intentas acceder al nombre que le da ASP.NET a los
controles directamente.
Es mejor, creo yo, hacerlo de la siguiente manera:



Respuesta Responder a este mensaje
#2 carlosmsr
08/02/2007 - 16:05 | Informe spam
poner el codigo en la pagina aspx on el aspx.cs no deberia tener, segun creo,
un impacto importante en la performance. sin embargo, manejarlo desde el code
behind tiene las ventajas de mantener el gui separado del codigo.

la ventaja que puedes tener haciendo links a archivos .js es que estos se
cargan en conexiones paralelas que genera el browser, a diferencia del codigo
embebido en la pagina. en caso de que haya mucho (pero mucho) javascript
incluido esto puede significar una diferencia (ojo, esto tambien depende de
la version de http que se este usando:HTTP/1.1 acepta solo dos conexiones
paralelas).




"Alhambra-Eidos Kiquenet" wrote:

Hola,

tengo una página aspx que utiliza javascript así:


<script language="javascript" type="text/javascript">
//<!--
//<![CDATA[
var ID_CAMPO_HIDDEN_OBSERVACIONES = '<%=
hiddenSeleccionFilaObservaciones.ClientID %>';

var MSG_OBSERVACION_NO_SELECCIONADA = "<%=
Util.Cliente.Recursos.VisadoPantalla.CentroControlObservaciones_MsgJavascriptObservacionNoSeleccionada %>";

var MSG_CONFIRMACION_BORRADO_OBSERVACION = "<%=
Util.Cliente.Recursos.VisadoPantalla.CentroControlObservaciones_MsgJavascriptConfirmacionBorradoObservacion %>";

var HIDDEN_OBSERVACIONES = null;

var IDFILA1 = "fila1Observaciones";
var IDFILA2 = "fila2Observaciones";
var IDFILA3 = "fila3Observaciones";

...
//]]>
//-->
</script>

Como veis aparecen expresiones de tipo
"<%=
Util.Cliente.Recursos.VisadoPantalla.CentroControlObservaciones_MsgJavascriptObservacionNoSeleccionada %>";

Lo veo algo como código tipo "spaguetti". ´Cuál sería una buena forma de
trabajar en estos casos ??

Haciendo un Register del código Javascript ?

He pensado también que se puede tener todo el javascript en un fichero de
recursos y de alguna forma acceder a ese código y hacer el Register
ScriptBlock. Lo que no sé si tendrá alguna incidencia en el rendimiento ,
accediendo al recurso para obtener el código.

Cualquier alternativa que quieran indicarme se lo agradecería.

Saludos.

http://www.alhambra-eidos.com/web2005/index.html
www.kiquenet.net

Respuesta Responder a este mensaje
#3 Alhambra-Eidos Kiquenet
08/02/2007 - 17:05 | Informe spam
La idea es tener en el code-behind del servidor algo así:

Acceder a un fichero de recursos resx (embebido o incrustado en el proyecto
csproj)

Leer ese fichero y realizar sustituciones de texto

RegisterScriptBlock para registarr ese javascript.

Mi pregunta iba orientada al rendimiento de estos3 pasos: acceso al fichero
resx, lectura de su contenido y realizar sustituciones de texto.

Saludos y gracias.

"carlosmsr" wrote:

poner el codigo en la pagina aspx on el aspx.cs no deberia tener, segun creo,
un impacto importante en la performance. sin embargo, manejarlo desde el code
behind tiene las ventajas de mantener el gui separado del codigo.

la ventaja que puedes tener haciendo links a archivos .js es que estos se
cargan en conexiones paralelas que genera el browser, a diferencia del codigo
embebido en la pagina. en caso de que haya mucho (pero mucho) javascript
incluido esto puede significar una diferencia (ojo, esto tambien depende de
la version de http que se este usando:HTTP/1.1 acepta solo dos conexiones
paralelas).
Respuesta Responder a este mensaje
#4 carlosmsr
08/02/2007 - 17:44 | Informe spam
los archivos .resx no deberian generar gran impacto en la performance, claro
que producen una carga extra en el CLR y aumentan el tiempo de compilacion
dado que consumen tiempo con el acceso a disco extra, etc. pero en las
condiciones correctas, esto no deberia ser importante.

un buen lugar, si aceptas la sugerencia, para buscar algo de informacion al
respecto es: http://msdn2.microsoft.com/en-us/li...5wy6k.aspx



"Alhambra-Eidos Kiquenet" wrote:

La idea es tener en el code-behind del servidor algo así:

Acceder a un fichero de recursos resx (embebido o incrustado en el proyecto
csproj)

Leer ese fichero y realizar sustituciones de texto

RegisterScriptBlock para registarr ese javascript.

Mi pregunta iba orientada al rendimiento de estos3 pasos: acceso al fichero
resx, lectura de su contenido y realizar sustituciones de texto.

Saludos y gracias.

"carlosmsr" wrote:

> poner el codigo en la pagina aspx on el aspx.cs no deberia tener, segun creo,
> un impacto importante en la performance. sin embargo, manejarlo desde el code
> behind tiene las ventajas de mantener el gui separado del codigo.
>
> la ventaja que puedes tener haciendo links a archivos .js es que estos se
> cargan en conexiones paralelas que genera el browser, a diferencia del codigo
> embebido en la pagina. en caso de que haya mucho (pero mucho) javascript
> incluido esto puede significar una diferencia (ojo, esto tambien depende de
> la version de http que se este usando:HTTP/1.1 acepta solo dos conexiones
> paralelas).

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida