Copia de Asig IoT. Practica11. HTML Con JavaScript
Copia de Asig IoT. Practica11. HTML Con JavaScript
IoT
Objetivo
Lograr que el estudiante adquiera los conocimientos mínimos del uso de JavaScript para
lograr que las páginas html sean más interactivas e inteligentes, esto como insumo para
desarrollar soluciones IoT. Por ejemplo, estos conceptos pueden ser vistos como el
preámbulo a las Web Apps donde se trabajarán soluciones cliente-servidor con su
Front-End y su Back-End. El html con JavaScript es clave en el Front-End.
Conocimientos previos
CSS (Cascading Style Sheets): CSS se utiliza para definir la apariencia y el estilo visual de
una página web. Permite controlar aspectos como colores, fuentes, márgenes, tamaños y
diseños.
Imágenes y Multimedia: Esto incluye elementos como imágenes, videos y archivos de audio
que se incorporan en una página web para enriquecer su contenido.
Diseño Responsivo: El diseño web responsivo implica crear páginas web que se adaptan a
diferentes tamaños de pantalla y dispositivos, como computadoras de escritorio, tabletas y
teléfonos móviles.
Seguridad: Asegurarse de que una página web esté protegida contra vulnerabilidades
comunes, como ataques de inyección de SQL o ataques de seguridad de tipo cross-site
scripting (XSS).
AJAX
AJAX significa Asynchronous JavaScript and XML. Se trata de una solución que incorporan
los navegadores para atender solicitudes de código JavaScript que se aloja en páginas
Web. Para esto ocurre una comunicación asincrónica entre el JavaScript en cliente-AJAX-
servidor web, logrando cambios en la vista de la página que ve el cliente sin necesidad de
recargar toda la página del cliente. Como resultado, la página puede cambiar de manera
dinámica.
Fig. 1. Comunicación cliente-AJAX-Servidor Web
DOM
(Document Object Model) es un concepto fundamental en la programación web y está
intrínsecamente relacionado con JavaScript. El DOM es una representación estructurada y
jerárquica de un documento HTML o XML, que permite a los programadores acceder y
manipular los elementos de una página web de manera dinámica a través de JavaScript.
El DOM organiza todos los elementos de una página web en una estructura de árbol, donde
cada elemento (como etiquetas HTML) es representado como un objeto en ese árbol. Esto
significa que cada parte de una página web, como encabezados, párrafos, enlaces,
imágenes, formularios, etc., es representada por un objeto en el DOM. JavaScript puede
interactuar con estos objetos para realizar acciones como cambiar el contenido, modificar
estilos, agregar o eliminar elementos y más.
Análisis
<head>
<title>Ejemplo de Encabezado H1</title>
</head>
<body>
<h1>Este es un encabezado de nivel 1</h1>
<p>Este es un párrafo de ejemplo que sigue al encabezado.</p>
<script>
function cambiarTexto() {
document.querySelector('h1').textContent = "Atención: JavaScript ha cambiado este escrito";
}
</script>
</body>
</html>
Análisis
<script>
function cambiarTexto() {
var elementoAfectado = document.getElementById("marca1");
elementoAfectado.innerHTML = "Atención: JavaScript ha cambiado este escrito";
}
</script>
</body>
</html>
Resultados de aprendizaje
● El estudiante conocerá los mínimos necesarios para el uso de JavaScript en
soluciones de Front-End, incluyendo:
○ poder escribir código de JavaScript como parte de un documento HTML y
probarlo
○ Conocer lo que se puede y no se puede hacer con JavaScript en soluciones
de Front-End
Tarea 1. Conquista del Navegador en modo
desarrollador para pruebas de JavaScript.
Paso 1. Abrir el navegador en modo desarrollador y explorar lo que allí se encuentra.
abre tu navegador > visita cualquier página, por ejemplo
https://sites.google.com/e3t.uis.edu.co/homeroortega/ > click derecho > Inspeccionar.
Paso 2. Pruebas de JavaScript en consola. Comprobar que la consola sirve para probar
código JavaScript en modo interpretado, como se hace con Python o Matlab.
Después del paso anterior, pasa a la pestaña “Console”. Escribe código JavaScript en modo
de programación interpretada. Por ejemplo:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo de HTML con JavaScript sin interacciones con el DOM</title>
</head>
<body>
<h1>Página para comprobar el uso de JavaScript sin interacciones con el DOM</h1>
<button onclick="asustador()">Oprime el botón</button>
<script>
function asustador() {
alert('¡Cuidado!. Tan pronto aceptes o hagas algo, comenzaré a ejecutar mi código de
manera oculta para tí. Acepta si no te da miedo esto. Pero te comparto un secreto: puedes ver mi
código en modo desarrollador y el resultado de mi código en la consola');
var largo = 10;
console.log('largo = ' + largo);
var ancho = 2;
console.log('ancho = ' + largo);
var alto = 3;
console.log('alto = ' + largo);
var volumen = largo * ancho * alto;
console.log('El volumen = ' + volumen);
}
</script>
</body>
</html>
Agrega aquí capturas de pantalla en modo desarrollador que demuestren que lo anterior
es correcto
Conclusión 1. Con lo aprendido en este paso, explica qué normas mínimas hay que
seguir para poder insertar código de JavaScript en HTML. Nota: tu explicación debe ser
tan buena que servirá para consultas futuras
se debe agregar la etiqueta correcta que es <script> y debe ubicarse en el lugar correcto del
código html para que no hayan futuros errores en el cargado de la página.
Paso 4. Aprende a programar una solución que combina varios archivos. En este caso un
archivo HTML y uno de JavaScript
function asustador() {
alert('¡Cuidado!. Tan pronto aceptes o hagas algo, comenzaré a ejecutar mi código de
manera oculta para tí. Acepta si no te da miedo esto. Pero te comparto un secreto: puedes ver mi
código en modo desarrollador y el resultado de mi código en la consola');
var largo = 10;
console.log('largo = ' + largo);
var ancho = 2;
console.log('ancho = ' + largo);
var alto = 3;
console.log('alto = ' + largo);
var volumen = largo * ancho * alto;
console.log('El volumen = ' + volumen);
}
Crea en tu computador, en el mismo lugar del caso anterior, un archivo de texto que se
llame “mi_html.html”. Pégale el siguiente código y guárdalo. Nota: el explorador debe ser
configurado para que muestre la extensión del archivo, para garantizar que la extensión
sea html, no txt
<!DOCTYPE html>
<html>
<head>
<title>Página con JavaScript externo</title>
</head>
<body>
<button onclick="asustador()">Oprime el botón</button>
<script src="micodigo.js"></script>
</body>
</html>
Comprueba qué cambios hay que hacer si se usa un ambiente de desarrollo como jsfiddle
para lograr el mismo efecto de una solución con un archivo HTML y uno en JavaScript.
Conclusión. Con lo aprendido en este paso, explica qué normas mínimas hay que seguir
para poder crear una solución cuando hay varios archivos que forman parte de ella. Nota:
tu explicación debe ser tan buena que servirá para consultas futuras
Asegurarse que los archivos estén en el formato correcto y que la forma de llamarlos esté
correcta también.
Paso 5. Prueba usar JavaScript en consola para afectar una página web.
Puedes hacerle a Chat GPT esta consulta:
mi intención es solo comprender si usando JavaScript puedo cambiar la vista de una
página. Por ejemplo
● tengo abierta, en un navegador, mi página web personal con la URL:
https://sites.google.com/e3t.uis.edu.co/homeroortega/
● estoy en la consola del navegador
Necesito los comandos en JavaScript para cambiar el encabezado que ve el usuario.
Seguramente obtendrás un código como este:
document.querySelector('h1').textContent = "Efecto de mi JavaScript por consola";
escribelo en la consola y observa el efecto en la página.
// si tiene id
// Selecciona el elemento con el id 'mi-encabezado' y cambia su texto.
document.getElementById('mi-encabezado').textContent = 'Nuevo Texto para el
Encabezado con ID';
conclusión:
El proceso de cambiar un encabezado usando JavaScript desde la consola es una
manipulación directa del DOM en el navegador y no implica ninguna comunicación
con un servidor a través de AJAX o de otro tipo. Los cambios son locales,
inmediatos y afectan solo la sesión de la página que está abierta en ese momento
en el navegador.
Paso 1. Mejora del código final de la Tarea 4 para que incluya un botón de refresco.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
tr:nth-child(1) {
background-color: orange;
}
</style>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
<h1>Órdenes recibidas para el despacho</h1>
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Número</th>
<th>Fecha</th>
<th>Nevera</th>
<th>Producto</th>
<th>Cantidad</th>
<th>Pesos</th>
</tr>
</thead>
<tbody>
<tr class="table-warning">
<td>1</td>
<td>2023-09-27 6:16:38</td>
<td>neveraChachones</td>
<td>huevos</td>
<td>10</td>
<td>30000</td>
</tr>
<!-- Agregar más filas si es necesario -->
</tbody>
</table>
En la página Web en versión edición crea una nueva versión de visualización de los
datos. Embebe allí el código obtenido en el paso 1, de la misma manera en como se
explicó en la tarea 4. Publica la página web nuevamente y pasa a la versión publicada.
Captura la pantalla de la página resultante con los cambios
Paso 2
Análisis. Analice el código del paso 1. Explique dónde y cómo ha sido declarada la
función JavaScript que realiza la tarea de refresco. Como ejemplo, puedes también
explicar el código usado para invocar esa función. Nota: tu explicación debe ser tan
buena que una persona la puede consultar para saber los pasos a seguir.
La función JavaScript que realiza la tarea de refresco del `iframe` se encuentra declarada
en una sección `<script>` del código HTML. Aquí se detallan su ubicación, su declaración
y cómo se integra en el flujo de trabajo de la página.
La función está declarada dentro de una etiqueta `<script>` en la parte inferior del cuerpo
(`<body>`) del documento HTML. Esto es una práctica común que garantiza que todo el
contenido HTML esté completamente cargado antes de que el script se ejecute.
### Código Relacionado con la Función
```html
<script>
// Función para refrescar el iframe
function refrescarIframe() {
var iframe = document.getElementById('miIframe');
iframe.src = iframe.src; // Actualiza el src para refrescar el contenido
}
```javascript
function refrescarIframe() {
var iframe = document.getElementById('miIframe');
iframe.src = iframe.src; // Actualiza el src para refrescar el contenido
}
```
```javascript
document.getElementById('refrescarBtn').addEventListener('click', refrescarIframe);
```
### Conclusión
Modifica el código anterior para que en lugar de que el frame se refresque cada vez que
se oprima el botón, se refresque automáticamente cada 10 segundos.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
tr:nth-child(1) {
background-color: orange;
}
</style>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
<h1>Órdenes recibidas para el despacho</h1>
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Número</th>
<th>Fecha</th>
<th>Nevera</th>
<th>Producto</th>
<th>Cantidad</th>
<th>Pesos</th>
</tr>
</thead>
<tbody>
<tr class="table-warning">
<td>1</td>
<td>2023-09-27 6:16:38</td>
<td>neveraChachones</td>
<td>huevos</td>
<td>10</td>
<td>30000</td>
</tr>
<!-- Agregar más filas si es necesario -->
</tbody>
</table>
Evidencias en la página web, una vez sea re-publicada sobre esta tarea