Similar Posts
Arrays en Javascript
Ahora que está tan de moda el Ajax, el JSON, que requieren un conocimiento un poco avanzado de Javascript, nos olvidamos de tener una buen base para luego no tener dificultades cuando realizamos nuestras aplicaciones clientes.
Aunque inicialmente Javascript no admitÃa arrays, su uso es una de las caracterÃsticas más necesitadas. Por experiencia he comprobado que algunas personas solo conocen su funcionalidad más común, por lo que no estarÃa mal que le echaran un vistazo a este manual sobre arrays en Javascript, el cual es bastante completo.
A parte de los métodos que admiten y su funcionamiento, destacarÃa dos partes: la primera es que los arrays se tratan por referencia, no por valor; la segunda parte es el inclusión mediante prototype de otros métodos, como ordenamiento de forma númerica y encontrar valores entre otros.
Mastering Javascript Arrays
VÃa / dzone
Extiende Google Analytics con jQuery
Interesante script de jQuery que integrándolo en nuestra página, carga el script de Google Analytics y le añade características extra que normalmente no tenemos en cuenta:
- Enlaces salientes
- E-Mails (mailto)
- Descarga de ficheros, configurable indicando el tipo de fichero que se quiere monitorizar
Extend Google Analytics with jQuery
Vía / Script & Style
Tutorial de Drag&Drop de capas con jQuery UI
Últimamente, algunas webs como la BBC han modificado su diseño para hacerlo modular y permitir que el usuario realice Drag&Drop de los módulos para colocarlos cómo más le guste, algo que Netvibes o iGoogle ya hacían hace bastante tiempo. Afortunadamente, ahora con jQuery UI se puede realizar de forma muy sencilla.
El tutorial que enlazo explica paso a paso cómo hacerlo haciendo uso de jQuery, jQuery UI mediante los sortables y jQuery Cookies para trabajar con cookies de forma facil (y poder recuperar la configuración cuando el usuario vuelva a conectarse).
$('#sidebar .sortable-list').sortable({
axis: 'y',
containment: 'parent',
forceHelperSize: true,
forcePlaceholderSize: true,
handle: '.section-title',
opacity: 0.8,
placeholder: 'placeholder',
update: function(){
$.cookie('sidebar-cookie', getItems('sidebar'));
}
});
jQuery: Customizable layout using drag and drop
Vía @kingsleyphls
ZeroClipboard: copiar al portapapeles desde Javascript
ZeroClipboard es una librería javascript que utiliza un swf para copiar contenido en nuestro portapapeles. Aunque hay algún script que te lo hace, con la nueva versión de Adobe Flash, han dejado de funcionar, algo que no ocurre con ZeroClipboard.
Se trata de una librería bastante completa que permite añadir eventos y estilos.
Podéis ver un ejemplo en micURL
ZeroClipboard
Gracias José Luis por el aviso
Testear páginas web con AVA y PhantomJS
Estoy colaborando junto a @jlantunez y @belelros en WebSlides, un proyecto open source que permite crear presentaciones usando un navegador web de forma increíble.
Para hacer las cosas bien, vamos a incluir pruebas de testing, y para ello he mirado cómo hacerlo con AVA y PhantomJS. El problema con el que me he encontrado ha sido que todo es asíncrono y a veces da un poco de problemas esperar a cargar la página para que AVA empiece a realizar las pruebas.
Además no es plan de cargar la página en cada una de las pruebas, por lo que cargo la página una vez y luego realizo las pruebas necesarias. Esto me obliga a que las pruebas sean secuenciales en vez de en paralelo, pero bueno, tampoco es mucho problema.
Como me he roto la cabeza intentado averiguar cómo hacer, ya que soy un tanto novato en esto, pongo el código para aquel que lo necesite, aunque bueno, en breve estará en GitHub:
// Cargo las librerías
let phantom = require("phantom");
import test from 'ava';
// Para almacenar lo que PhantomJS necesita
let ph_, page_, status_;
// Función que carga la página
const load = async () => {
await phantom.create().then(async ph => {
ph_ = ph;
return await ph_.createPage();
}).then(page => {
page_ = page;
return page_.open('http://webslides.tv/');
}).then(status => {
status_ = status;
return true;
}).catch(e => console.log(e));
}
// Tests
test.serial("Page loaded", async t => {
await load();
t.is(status_, 'success');
});
test.serial('#webslides exits', async t => {
await page_
.evaluate( () => document.querySelector('#webslides') != null )
.then( ws => { t.truthy(ws); } );
});
test.serial('WebSlides object exits', async t => {
await page_
.evaluate( () => window.ws != null )
.then( ws => { t.truthy(ws); } );
});
/**
* Last test
*/
test.serial('Closing', async t => {
await page_.close();
ph_.exit();
t.true(true);
});
Crear una nube de etiquetas con jQuery
Aunque las nubes de etiquetas ya no están tan de moda como hace un tiempo, el tutorial donde explican cómo hacer un tagscloud mediante jQuery merece la pena, ya que se trata de una explicación detallada.
No solo se centra en jQuery, sino en la parte PHP que devuelve los datos en JSON y en los estilos CSS para mostrar las etiquetas según su relevancia.
Realmente la parte jQuery solo cambia el tamaño de la letra según la frecuencia de la etiqueta.
Building a jQuery-Powered Tag-Cloud