adaJS
adaJS is a community of women who meet periodically in Barcelona, with the goal of promoting and supporting the growth of the female sector in the field of information technology (IT) through JavaScript and web development
Parte II
function funcion1(x) {
x = x * 2;
console.log('funcion1 => ' + x)
return x;
}
function funcion2(x) {
x = x + 100;
console.log('funcion2 => ' + x);
return funcion3(x);
}
function funcion3(x) {
x = x / 3;
console.log('funcion3 => ' + x);
return x;
}
function funcion4(x) {
x = x * 4;
console.log('funcion4 => ' + x)
return x;
}
function main() {
var x = 10;
x = funcion1(x);
x = funcion2(x);
x = funcion4(x);
}
main();
¿Qué saldrá en la consola del navegador?
Ejecuta el código aquí:
https://repl.it/CLwS/0
funcion1
funcion2
funcion3
funcion4
Resultado:
funcion1 => 20
funcion2 => 120
funcion3 => 40
funcion4 => 160
Gran parte del tiempo de las operaciones que realiza un programa en su ejecución se pierde
esperando
Para aprovechar la CPU, cuando un proceso debe esperar, dicho proceso se bloquea y otro toma su lugar (ejecución concurrente).
Cuando llega la señal de que la espera (operación) ha terminado, el proceso se reanuda.
Desde el punto de vista de un programa, cuando la llamada a una función que realiza una operación termina, la operación se ha completado.
Implícitamente, significa que nuestro programa ha estado esperado a que dicha operación terminase.
Debido a que la terminación de la operación y la reanudación del programa ocurren a la vez, se dice que estamos realizando llamadas síncronas.
La alternativa a esperar es...
no esperar
function funcion1(x) {
x = x * 2;
console.log('funcion1 => ' + x)
return x;
}
function funcion2(x) {
x = x + 100;
console.log('funcion2 => ' + x);
return funcion3(x);
}
function funcion3(x) {
setTimeout(function () {
x = x / 3;
console.log('funcion3 => ' + x);
}, 1000);
return x;
}
function funcion4(x) {
x = x * 4;
console.log('funcion4 => ' + x)
return x;
}
function main() {
var x = 10;
x = funcion1(x);
x = funcion2(x);
x = funcion4(x);
}
main();
funcion1 => 20
funcion2 => 120
funcion4 => 480
funcion3 => 40
Resultado:
function funcion1(x) {
x = x * 2;
console.log('funcion1 => ' + x)
return x;
}
function funcion2(x) {
x = x + 100;
console.log('funcion2 => ' + x);
return funcion3(x);
}
function funcion3(x) {
var def = $.Deferred();
setTimeout(function () {
x = x / 3;
console.log('funcion3 => ' + x);
def.resolve(x);
}, 1000);
return def;
}
function funcion4(x) {
x = x * 4;
console.log('funcion4 => ' + x)
return x;
}
function main() {
var x = 10;
x = funcion1(x);
var deferred = funcion2(x);
deferred.then(funcion4);
}
main();
funcion1 => 20
funcion2 => 120
funcion3 => 40
funcion4 => 160
Resultado:
(Asynchronous JavaScript And XML)
$.ajax('http://api.icndb.com/jokes/random', {
type: 'GET',
success: function(data) {
// your code
}
});
$.get('http://api.icndb.com/jokes/random', function(data) {
// your code
});
Llamada síncrona a la ICNDb
(Internet Chuck Norris Database)
$.ajax({
type: 'GET',
url: 'http://api.icndb.com/jokes/random',
async: false,
success: function (data) {
if (data.type === 'success') {
// TODO
}
}
});
Llamada asíncrona a la ICNDb
(Internet Chuck Norris Database)
$.get('http://api.icndb.com/jokes/random', function (data) {
if (data.type === 'success') {
// TODO
}
});
By adaJS
En la primera parte del taller de desarrollo web aprendimos las bases de HTML y el DOM, y también hicimos una introducción a CSS y a jQuery, una librería de JavaScript creada en 2006 que ha cambiado para siempre la programación web. En esta segunda parte seguiremos desarrollando nuestra primera aplicación web con jQuery, y cargaremos datos dinámicamente mediante consultas AJAX a una API pública. No pasa nada si te perdiste la primera parte del taller, ¡también eres bienvenida! By AdaJS team