JASoft.org

Operador triple-igual (===) en JavaScript

Operador triple-igual (===) en JavaScript
JavaScript es un lenguaje que, cuatos más años pasan, más de moda está. En los tiempos que corren, con las aplicaciones AJAX campando a sus anchas por todas partes está más presente que nunca, así que no viene mal un truco de vez en cuando (y pienso que en los próximos meses escribiré aún más sobre el tema). Hoy me he acordado del operador triple-igual o ===. Sí, estás leyendo bien, tres iguales seguidos. No contentos con el doble igual típico de C, C#, Java y otros lenguajes, también tenemos el triple. Este es un operador muy poco conocido en el lenguaje JavaScript y básicamente sirve para comparar la igualdad de dos objetos sin forzar la conversión automática de tipos. Es decir, que para que devuelve true los dos objetos además de representar el mismo valor deberán ser exactamente del mismo tipo subyacente. Así por ejemplo, vamos a comp... [Más]

Seguridad Web: Evitar ataques XSS con Cookies accesibles sólo desde el servidor

Seguridad Web: Evitar ataques XSS con Cookies accesibles sólo desde el servidor
Una de las técnicas de hacking de páginas web más conocidas es la de Cross-Site-Scripting o XSS. Mediante esta técnica, las aplicaciones Web vulnerables pueden ser atacadas para multitud de propósitos: servir de zombies para atacar a otras Webs inundándolas con peticiones, ejecutar código en zonas de seguridad menos restrictivas (como la local) o, sobre todo, robar la identidad de los usuarios del sitio vulnerable. Ha sido utilizado tradicionalmente en combinación con correos electrónicos maliciosos para entrar en sitios Web protegidos suplantando la identidad de usuarios autenticados. En mi curso de Desarrollo de aplicaciones seguras y seguridad de .NET monto un ejemplo completo de cómo utilizarlo en un supuesto sitio de banca electrónica (muy mal hecha y vulnerable), para robar la sesión del usuario y entrar en su cuenta. Este robo de sesiones se basa en la obtención mediante XSS de la cookie de sesión de un usuario, enviándola a un servidor bajo el control del atacante. Éste al rec... [Más]

El atributo "defer" de JavaScript

El atributo "defer" de JavaScript
La metodología clásica de creación de páginas Web recomienda que todos nuestros scripts se encuentren en la cabecera de la página. Está bien tener un orden pero realmente no es necesario. Es más, nadie nos dice que no podamos incluso tener varias cabeceras en la página, una por ejemplo, después de cerrar la etiqueta </body>, si queremos. Hay algunas aplicaciones que usan mucho JavaScript. Sobre todo ahora con el uso masivo de capacidades AJAX en las aplicaciones Web. Algunos de estos scripts son simples bibliotecas de funciones con decenas o cientos de ellas que lo único que hacen es retrasar la carga de página mientras son procesadas por el navegador, ya que éste no sólo carga cada Script sino que también lo interpreta y ejecuta a medida que lo va leyendo. En otros casos el script necesita tener acceso a todos los elementos de la página antes de poder actuar (es decir, el HTML de la página debe ser procesado por completo y el árbol DOM construido). Si lo colocamos en la cabecer... [Más]

Cómo permitir la desactivación de los botones de radio

Cómo permitir la desactivación de los botones de radio
Esto, que parece una tontería, no lo es en modo alguno. Cuando colocas un conjunto de botones de radio en una página Web con etiquetas de tipo <input type="radio">, al pulsar sobre cualquiera de ellos, éste queda seleccionado. Al pulsar sobre cualquier otro del mismo grupo, el primero se deselecciona ya que sólo uno de ellos puede estar seleccionado al mismo tiempo. Este es el comportamiento normal y esperado. Sin embargo hay un problemilla que mucha gente se encuentra que con sorpresa no pueden solucionar: ¿qué pasa si quieres desactivarlos todos una vez que ya hay alguno seleccionado?. Prueba por ejemplo esta página. Al abrirla pulsa en los botones de radio de cualquiera de los grupos que contiene. Ahora intenta deseleccionarlos. No funciona. Normalmente estos botones de radio se usan para dar a escoger entre varias opciones excluyentes entre sí, pero también puede darse la posibilidad de que la elección sea 'ninguna'. Lo que suele hacer la gente para solucionarlo es i... [Más]

Vídeo en Channel9 en Español: bibliotecas cliente de AJAX y JavaScript en Visual Studio 2008

Vídeo en Channel9 en Español: bibliotecas cliente de AJAX y JavaScript en Visual Studio 2008
Ya está disponible en Channel9 un nuevo vídeo que he hecho sobre las bibliotecas del lado cliente de AJAX y un montón d cuestiones relacionadas con JavaScript en Visual Studio 2008. Enseño a llamar a servicios Web desde JavaScript, cómo generar biblitecas .js con soporte para Intellisense en Visual Studio, y unas cuantas cosas más. Se ve con una calidad estupenda, pero debes ponerlo a pantalla completa usando el botón de la derecha que aparece en la parte de abajo cuando pasas por encima con el ratón (el que tiene las flechas en esta figura): Pulsa la imagen para ir la página del vídeo Puedes verlo en streaming directamente desde la página (necesitarás Silverlight 2.0) o bien descargártelo en diversos formatos: En la página podrás encontrar otros vídeos intereantes, muchos de los cuales los han hecho también otros tutores de campusMVP, como Unai Zorrilla, Bruno Capuano, o Alberto Población. Seguro que dentro de poco habrá alguno más de los míos, de los que os iré informando... [Más]

Vídeo en Channel9 en Español: Mejorar el rendimiento de la descarga de librerías Javascript

Vídeo en Channel9 en Español: Mejorar el rendimiento de la descarga de librerías Javascript
Ya está disponible en Channel9 mi vídeo sobre cómo optimizar la descarga de archivos .js en aplicaciones Web gracias a la característica específica incluida a tal efecto en el SP1 de .NET 3.5. Se ve con una calidad estupenda, pero debes ponerlo a pantalla completa usando el botón de la derecha que aparece en la parte de abajo cuando pasas por encima con el ratón (el que tiene las flechas en esta figura): Pulsa la imagen para ir la página del vídeo Puedes verlo en streaming directamente desde la página (necesitarás Silverlight 2.0) o bien descargártelo en diversos formatos: En la página podrás encontrar otros vídeos intereantes, muchos de los cuales los han hecho también otros tutores de campusMVP, como Unai Zorrilla o Alberto Población. Dentro de poco habrá alguno que otro más de los míos, de los que os iré informando aquí... ¡Qué os sea útil!

Permitir la cancelación de peticiones asíncronas AJAX

Permitir la cancelación de peticiones asíncronas AJAX
Una de las ventajas de AJAX, aparte de la posibilidad de simular interfaces de usuario tradicionales de una sola capa, es que sirve para lanzar desde el cliente tareas pesadas en el servidor mientras permitimos seguir trabajando a los usuarios en e la lado cliente (navegador). Pero ¿qué pasa si una tarea tarda demasiado y queremos permitir que nuestros usuarios la cancelen cuando quieran sin tener que esperar a que terminen? ASP.NET AJAX en sus extensiones de JavaScript contempla esta posibilidad de manera sencilla y nos proporciona una forma de conseguirlo con muy poco código. Por ejemplo, arrastra en un formulario Web un ScriptManager y un UpdatePanel. Dentro de éste último coloca una etiqueta y un botón. En el manejador del evento de pulsación del botón detén el hilo de ejecución durante unos segundos para simular una tarea que tarda mucho tiempo en ejecutarse y despues pon algo en la etiqueta para manifestar que se ha terminado la operación. Finalmente añade un control UpdateProg... [Más]

TRUCO: snippet de JavaScript para facilitar la captura de información de una página Web

TRUCO: snippet de JavaScript para facilitar la captura de información de una página Web
Este es un truco muy sencillo pero que puede resultar realmente útil. Cuando estamos navegando por Internet en busca de información hay veces que nos interesa guardar ciertos contenidos pero: · A lo mejor no nos permite guardarlos a disco. · Está deshabilitado copiar y pegar mediante JavaScript (fácil de solucionar, pero un "peñazo") · La información no nos interesa exactamente cómo está, sino que queremos quitar cosas o añadir algunos comentarios propios que los complementen. · La página tiene muchas otras cosas alrededor que nos sobran. · Etc... Para estos casos hay un snippet de JavaScript puede sernos de gran utilidad. Al utilizarlo lo que conseguimos es que cualquier página que estemos visualizando se convierta en editable, de forma que podamos modificarla a voluntad antes de copiarla (o cortarla) para almacenar el contenido. Así podremos quitar lo que no nos guste, redimensionar gráficos, mover partes de un lado a otro, añadir comentarios, etc... Realmente útil. Para te... [Más]

Trabajo con JavaScript en Visual studio 2008: lo que no vísteis en el Evolution Show

Trabajo con JavaScript en Visual studio 2008: lo que no vísteis en el Evolution Show
Hola a todos: Como sabéis la semana pasada estuve en el Evolution Show en Madrid, en la presentación de Visual Studio 2008, Windows Server 2008 y SQL Server 2008. De hecho estuvimos un montón de tutores de campusMVP dando las ponencias, como ya os había comentado, y tuvimos un stand de Krasis/campusMVP por el que se pasó  mucha gente. Lo pasamos estupendamente, y nos visitaron muchos amigos y alumnos, a los que me encantó saludar. Gracias :-) Los que tuvísteis ocasión de ir a mi ponencia sobre desarrollo Web sabéis los problemas que tuve. Mi portátil al que le acababa de instalar el SP1 de Windows Vista se negó a trabajar y se rompió miserablemente (pantallazo azul, aunque no lo viéseis, y eso que el día anterior por la tarde había ido a comprobar que funcionaba bien). Por lo visto (me enteré luego) al instalar el SP1 de Vista se ponen otra vez los controladores de Microsoft y quita los que tu tuvieses, por lo que si como en micaso el controlador del fabricante es más reciente y... [Más]

AJAXInterceptor: convierte tus aplicaciones Web a AJAX sin escribir una sola línea de código

AJAXInterceptor: convierte tus aplicaciones Web a AJAX sin escribir una sola línea de código
Estos días he estado trabajando unas cuantas horas de mi (poco) tiempo libre en una idea que tuve ya hace bastante tiempo. Se puede resumir con sólo una frase: crear una pequeña biblioteca JavaScript que, añadida a tu página Web (PHP, ASP, ASP.NET...) la dotará automáticamente de funcionalidad AJAX, sin que tengas que escribir ni una sola línea de código. Pensé que iba a resultarme mucho más dificil, pero lo cierto es que ha sido bastante fácil de conseguir. Ahora ya la puedo presentar para que el que quiera se descargue el resultado: AJAXInterceptor 0.5 Beta. Sólo con añadir este pequeño módulo JavaScript al final de tus páginas consigues que los envíos de tus formularios se intercepten (de ahí el nombre), y en lugar de enviarse la petición al servidor de la manera normal, se hacen de manera asíncrona y en un modo suave estilo AJAX. Dado que es una biblioteca de lado de cliente funcionará con cualquier tecnología de servidor: ASP.NET, PHP, JSP, Classic ASP... e incluso con archivo... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico