Skip to content

Commit 98fab29

Browse files
authored
Merge pull request Eloquent-JavaScript-Espanol#29 from ajesusflores/master
Capítulo 13, segunda (y última parte)
2 parents e589fdd + 93536fa commit 98fab29

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed

13_browser.md

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,4 +316,148 @@ considera que las declaraciones ((doctype)) y `charset` están ahí
316316
implicitamente en los ejemplos, incluso cuando no se muestran en el
317317
texto.
318318

319+
{{id script_tag}}
319320

321+
## HTML y JavaScript
322+
323+
{{index [JavaScript, "in HTML"], "script (HTML tag)"}}
324+
325+
En el contexto de este libro, la etiqueta HTML más importante es
326+
`<script>`. Esta etiqueta nos permite incluir un fragmento de JavaScript
327+
en un documento.
328+
329+
```{lang: "text/html"}
330+
<h1>Testing alert</h1>
331+
<script>alert("hello!");</script>
332+
```
333+
334+
{{index "alert function", timeline}}
335+
336+
Ese comando será ejecutado tan pronto como su etiqueta `<script>` es
337+
encontrada mientras el navegador lee el HTML. Esta página mostrará un
338+
diálogo en cuanto sea abierta, la función `alert` se parece a `prompt`
339+
en que muestra una pequeña ventana, pero sólo muestra un mensaje sin
340+
esperar datos de entrada.
341+
342+
{{index "src attribute"}}
343+
344+
Incluir grandes programas directamente en un documento HTML
345+
es muchas veces impráctico. A la etiqueta `<script>` se le puede proveer
346+
un atributo `src` para obtener un archivo de script (un archivo de texto
347+
que contiene un fragmento de códido JavaScript) de una URL.
348+
349+
```{lang: "text/html"}
350+
<h1>Testing alert</h1>
351+
<script src="code/hello.js"></script>
352+
```
353+
354+
El archivo _code/hello.js_ incluido aquí contiene el mismo programa,
355+
`alert("hello!")`. Cuando una página HTML hace referencia a otras URLs como
356+
parte de si misma, por ejemplo, un archivo de imagen o un script, los navegadores
357+
los recuperarán inmediatamente y los incluirán en la página.
358+
359+
{{index "script (HTML tag)", "closing tag"}}
360+
361+
Una etiqueta de script siempre debe cerrarse con `</script>`, incluso si se
362+
refiere a un archivo de script y no contiene código en su interior. Si olvidas
363+
cerrarla, el resto de la página será interpretada como parte del script.
364+
365+
{{index "relative path", dependency}}
366+
367+
Puedes cargar ((módulos ES)) (ver [Chapter ?](modules#es)) en el navegador
368+
si le provees a tu etiqueta script un atributo `type="module"`. Esos módulos
369+
pueden depender de otros módulos usando ((URL))s relativas a si mismos como
370+
nombres de módulos en declaraciones `import`.
371+
372+
{{index "button (HTML tag)", "onclick attribute"}}
373+
374+
Algunos atributos también pueden contener un programa JavaScript. La etiqueta
375+
`<button>` mostrada a continuación (que muestra un botón) tiene un atributo
376+
`onclick`. El valor del atributo será ejecutado siempre que el botón sea presionado.
377+
378+
```{lang: "text/html"}
379+
<button onclick="alert('Boom!');">NO PRESIONAR</button>
380+
```
381+
382+
{{index "single-quote character", [escaping, "in HTML"]}}
383+
384+
Nota que tuve que usar comillas simples para la cadena en el atributo `onclick`
385+
porque las comillas dobles ya están siendo utilizadas para encerrar el atributo
386+
completo. También pude haber usado `&quot;`.
387+
388+
## En la caja de arena
389+
390+
{{index "malicious script", "World Wide Web", browser, website, security}}
391+
392+
Ejecutar programas descargados de ((Internet)) es pontencialmente peligroso.
393+
No conoces mucho de las personas detrás de la mayoría de los sitios que visitas,
394+
y no necesariamente quieren hacer el bien. Ejecutar programas de gente que no
395+
quiere hacer el bien es como tu computadora se infecta de ((virus)), te roban
396+
la información y compromenten tus cuentas.
397+
398+
Aunque la atracción de la Web es que puedes navegar sin necesariamente ((confiar))
399+
en todas las páginas que visitas. Ésa es la razón por la cual los navegadores
400+
limitan en gran medida las cosas que un programa JavaScript puede hacer: no puede
401+
revisar los archivos en tu computadora o modificar nada relacionado a la página web
402+
en la que se inscrustó.
403+
404+
{{index isolation}}
405+
406+
Aislar un entorno de programación en ésta forma es llamado _((sandbox))ing_,
407+
la idea es que el programa pueda ejecutarse sin daños en una caja de arena.
408+
Pero deberías imaginar que este tipo particular de caja de arena es como tener
409+
los programas detrás de barras de acero y que no pueden salir.
410+
411+
la parte complicada del sandboxing es permitirle al programa suficientes permisos
412+
para ser útil y a la vez restringirlo de hacer cualquier cosa peligrosa. Mucha
413+
funcionalidad, como comunicarse con otros servidores o leer el contenido del
414+
portapapeles puede ser problematico, son cosas que invaden la ((privacidad)).
415+
416+
{{index leak, exploit, security}}
417+
418+
De vez en cuando, alguien tiene una nueva forma de evitar las limitaciones de un
419+
((navegador)) y hacer cosas dañinas, desde exponer información privada sin importancia
420+
hasta tomar el control de toda la máquina sobre la que corre el navegador. Los
421+
desarrolladores del navegador responden arreglando ese problema, y todo está bien
422+
nuevamente, hasta que el próximo problema es descubierto, y tal vez se haga
423+
público, en lugar de ser explotado de forma secreta por una agencia del gobierno
424+
o ((mafia)).
425+
426+
## Compatibilidad y la guerra de los navegadores
427+
428+
{{index Microsoft, "World Wide Web"}}
429+
430+
En las etapas tempranas de la Web, un navegador llamado ((Mosaic)) dominó el mercado.
431+
Después de unos cuantos años, la balanza se inclinó hacia ((Netscape)), el cual fue
432+
suplantado después por el browser de Microsoft ((Internet Explorer)). En cualquier punto
433+
en el que un único ((navegador)) fuera dominante, el fabricante de ese navegador se
434+
sentía con derecho de inventar nuevas caracteristicas unilateralmente para la Web.
435+
Ya que la mayoria de los usuarios usaban el navegador más popular, los ((sitios web))
436+
simplemente empezarían a usar esas caracteristicas sin importarles los otros navegadores.
437+
438+
Ésta fue la edad oscura de la ((compatibilidad)), algunas veces llamada
439+
_((guerra de navegadores))_. Los desarrolladores Web tenían que lidiar con
440+
dos o tres plataformas incompatibles. Para hacer las cosas peor, los navegadores
441+
usados alrededor del 2003 estaban llenos de ((defectos)), y por supuesto,
442+
los defectos eran distintos para cada ((navegador)). La vida era dura para los
443+
que escribian páginas Web.
444+
445+
{{index Apple, "Internet Explorer", Mozilla}}
446+
447+
Mozilla ((Firefox)), una derivación sin fines de lucro de ((Netscape)), retó
448+
la posición de Internet Explorer a finales de los 2000. Ya que ((Microsoft))
449+
no estaba interesado en mantenerse competitivo en ese momento, Firefox tomó
450+
una gran parte del mercado de Internet Explorer. Más o menos al mismo tiempo,
451+
((Google)) introdujo su navegador ((Chrome)), el navegador ((Safari)) de Apple
452+
también ganó popularidad, llevando a una situación en la que existieron cuatro
453+
grandes competidores, en lugar de uno.
454+
455+
{{index compatibility}}
456+
457+
Los nuevos competidores tuvieron una actitud más seria hacia los ((estándar))es y
458+
mejores prácticas de ((ingeniería)), dándonos menos incompatibilidad y menos
459+
defectos. Microsoft, al vez que su parte del mercado caerse, le dio la vuelta y
460+
adoptó esas actitudes en su navegador Edge, el cual reemplaza a Internet Explorer.
461+
Si tú estás empezando a aprender desarrollo web, considérate afortunado. Las
462+
últimas versiones de los navegadores se comportan uniformemente bien y tienen
463+
relativamente menos defectos.

0 commit comments

Comments
 (0)