Cuando trabajamos con Javascript nos encontramos que por culpa de
las diferencias entre los diferentes navegadores, tenemos que
condicionar nuestro código dependiendo de estas diferencias. Para ello,
y por la comodidad y claridad que aportan al código, los frameworks javascript llegan, y en masa, para hacer felices y fáciles las horas que dedicamos a este lenguaje.
Personalmente siempre que puedo, los evito. Por lo menos para
hacerlo yo, aunque sea solo una vez, pero la comodidad de uso y la
seguridad de que va a funcionar en la mayorÃa de casos, engancha.
Por eso, si estamos pensando en usar uno de ellos para nuestras
aplicaciones, debemos conocer las posibles alternativas de las que
podemos hacer uso.
1. Prototype (http://www.prototypejs.org/)
Pese a ser la más usada, es la que menos conozco de las más
conocidas. Famosa por su peso y la integración con script.aculo.us.
Muchisima documentación.
Ejemplo
//Nuevo elemento
var a = new Element(’a', { ‘class’: ‘foo’, href: ‘/foo.html’ }).update(â€Next pageâ€);
//Ajax
new Ajax.Request(’/some_url’,
{
method:’get’,
onSuccess: function(transport){
var response = transport.responseText || “no response textâ€;
alert(â€Success! \n\n†+ response);
},
onFailure: function(){ alert(’Something went wrong…’) }
});
2. MooTools (http://mootools.net/)
El primer framework que me enamoró, sin duda llegué atraido por la vistosidad de Moo.fx.
Destinada principalmente para complementar el diseño de las
aplicaciones web, con una gran cantidad de efectos. Todo ello sin
descuidar las funcionalidades del dÃa a dÃa. Importante tener en cuenta
la nueva versión 1.2 que será completamente diferente.
Ejemplos
// Crear un elemento
new Element(’a', {
’styles’: {
‘display’: ‘block’,
‘border’: ‘1px solid black’
},
‘events’: {
‘click’: function(){
//aaa
},
‘mousedown’: function(){
//aaa
}
},
‘class’: ‘myClassSuperClass’,
‘href’: ‘http://mad4milk.net’
});
//Ajax
var myAjax = new Ajax(url, {method: ‘get’});
myAjax.request();<
3. jQuery (http://jquery.com/)
Mi nuevo amor, hace cosa de un mes, que en los ratos libres voy
migrando heySilver a jQuery. Intentando aprender los grandes y
mejorando el código semana a semana. Sin lugar a dudas he descubierto
que pese a no disponer de muchos efectos ni transiciones, dispone de
todo lo necesario para hacer lo más fácil posible el trabajo diario.Â
La posibilidad de usar xPath y Selectores CSS para encontrar elementos
de nuestro HTML es simplemente una maravilla.
// Nuevo elemento
$(â€#elemento spanâ€).append(’<p class=â€claseâ€><a href=â€â€¦â€>Enlace</a></p>’);
// Ajax
$.ajax({
type: “POSTâ€,
url: “some.phpâ€,
data: “name=John&location=Bostonâ€,
success: function(msg){
alert( “Data Saved: †+ msg );
}
});
4. MochiKit (http://www.mochikit.com/)
Nunca he tenido la oportunidad de meterle mano, quizas ha sido por
falta de tiempo, quizas por falta de interes o quizas la poca claridad
del código, pero si revisamos la documentación nos damos cuenta de que
no es un framework que podamos desechar sin por lo menos dedicarle un
par de semanas.
//Nuevo elemento
P({â€class†: “claseâ€});
//Ajax
var url = “/src/b/bo/bob/MochiKit.Async/META.jsonâ€;
var d = loadJSONDoc(url);
var gotMetadata = function (meta) {
if (MochiKit.Async.VERSION == meta.version) {
alert(â€You have the newest MochiKit.Async!â€);
} else {
alert(â€MochiKit.Async â€
+ meta.version
+ †is available, upgrade!â€);
}
};
var metadataFetchFailed = function (err) {
alert(â€The metadata for MochiKit.Async could not be fetched :(â€);
};
d.addCallbacks(gotMetadata, metadataFetchFailed);
5. Script.aculo.us (http://script.aculo.us/)
Aunque técnicamente es un complemento de prototype, ya que sin él no
funciona, es posiblemente más famoso que el propio Prototype. Con él
todos los efectos, transiciones y transformaciones son mas fáciles
desde que script. aculo.us apareció.
//Nuevo elemento
element = Builder.node(’p',{className:’error’},’An error has occurred’);
// Ajax
new Ajax.Request(’/foo/bar’, {method:’post’, postBody:escape(’thisvar=true&thatvar=Howdy’)});
6. Rialto (http://rialto.improve-technologies.com/wiki/)
Otra gran desconocida de este mundillo de lÃneas de código, pese a
no estar compuesta de una gran cantidad de funcionalidades diarias,
está cargado de widgets de fácil instalación que merece la pena ver.
//Nuevo Elemento (Combo)
var comb = new rialto.widget.Combo([[â€value1″,â€text1″],[â€value2″,â€text2″],[â€value3″,â€text3″]],â€MyCombâ€,5,10,100,CADRE2,{position:â€absoluteâ€,heightItem:25,suggest:false,enable:true});
//Ajax
var remote=new rialto.io.AjaxRequest({
url:’rialtoModel.xml’,
method: ‘get’,
callBackObjectOnSuccess:this,
withWaitWindow:false,
onSuccess: this.parseXmlForListValue
}) ;
7. Dojo (http://dojotoolkit.org/)
8. Spry Framework (http://labs.adobe.com/technologies/spry/)
9. ASP.NET Ajax Framework (http://asp.net/ajax/)
10. Clean Ajax (http://sourceforge.net/projects/clean-ajax/)
11. YUI (http://developer.yahoo.com/yui/)
12. Ext (http://extjs.com/)
13. Base2 (http://code.google.com/p/base2/)
14. DOMAssistant (http://domassistant.com/)
Muchos, pero muchos más.
Recent Comments