jQuery.info
Découvrir et utiliser jQuery, la librairie javascript du XXIIème siècle

Home page > Actualités > Verso jQuery 1.1

Verso jQuery 1.1

venerdì 12 gennaio 2007, di John Resig, Renato

Tutte le versioni di questo articolo: [français] [italiano]

Il 14 gennaio, John Resig rilascerà la nuova versione di jQuery, jQuery 1.1. Per questa versione, ad un anno dalla sua nascita, gli sforzi si sono concentrati verso il miglioramento della velocità di esecuzione della libreria, in special modo riguardo ai selettori degli elementi.


Ecco alcune delle maggiori novità presenti nella versione 1.1:
- I selettori sono più veloci, da 10 a 20 volte rispetto alla versione 1.0.4;
- La documentazione è stata interamente riorganizzata;
- La complessità dell’API (l’interfaccia di programmazione) è stata ridotta del 47%;
- moltissimi bug sono stati corretti;
- sono state introdotte parecchie nuove funzionalità;
- ... e tutto ciò in un file che non arriva a 19 kb

Cambiamenti dell’API

Sono stati apportati notevoli cambiamenti all’API. Per questo motivo è probabile che uno script scritto per jQuery 1.0.4 non funzioni più correttamente con jQuery 1.1.

nth-child()

Un bug importante è stato corretto: secondo le specifiche CSS 3, il selettore :nth-child() deve contare gli elementi a partire da 1, e non da 0 come erroneamente avveniva in jQuery 1.0.x. La correzione di questo bug potrebbe creare errori nei vostri script.

Il seguente codice

// 1.0.x: Legge la prima colonna di una tabella
$("td:nth-child(0)")

dovrà quindi essere scritto in questo modo:

// 1.1: Legge la prima colonna di una tabella
$("td:nth-child(1)")

.filter(matrice)

Altro cambiamento: il vecchio selettore .filter([".foo", ".bar"]) (che selezionava tutti gli elementi aventi la classe .foo O .bar) ora si scrive in maniera molto più semplice, separando i vari possibili valori con una virgola: .filter(".foo, .bar") ; la vecchia sintassi è stata eliminata.

Alcuni metodi sono stati ritirati

I metodi che seguono sono stati rinominati/riorganizzati; ecco come poter continuare ad utilizzarli:

Vecchio (1.0.x)Nuovo (1.1)
.ancestors() .parents()
.top() .css("top")
.left() .css("left")
.position() .css("position")
.float() .css("float")
.overflow() .css("overflow")
.color() .css("color")
.background() .css("background")
.id() .attr("id")
.title() .attr("title")
.name() .attr("name")
.href() .attr("href")
.src() .attr("src")
.rel() .attr("rel")
.oneblur(fn) .one("blur",fn)
.onefocus(fn) .one("focus",fn)
.oneload(fn) .one("load",fn)
.oneresize(fn) .one("resize",fn)
.onescroll(fn) .one("scroll",fn)
.oneunload(fn) .one("unload",fn)
.oneclick(fn) .one("click",fn)
.onedblclick(fn) .one("dblclick",fn)
.onemousedown(fn) .one("mousedown",fn)
.onemouseup(fn) .one("mouseup",fn)
.onemousemove(fn) .one("mousemove",fn)
.onemouseover(fn) .one("mouseover",fn)
.onemouseout(fn) .one("mouseout",fn)
.onechange(fn) .one("change",fn)
.onereset(fn) .one("reset",fn)
.oneselect(fn) .one("select",fn)
.onesubmit(fn) .one("submit",fn)
.onekeydown(fn) .one("keydown",fn)
.onekeypress(fn) .one("keypress",fn)
.onekeyup(fn) .one("keyup",fn)
.oneerror(fn) .one("error",fn)
.unblur(fn) .unbind("blur",fn)
.unfocus(fn) .unbind("focus",fn)
.unload(fn) .unbind("load",fn)
.unresize(fn) .unbind("resize",fn)
.unscroll(fn) .unbind("scroll",fn)
.ununload(fn) .unbind("unload",fn)
.unclick(fn) .unbind("click",fn)
.undblclick(fn) .unbind("dblclick",fn)
.unmousedown(fn) .unbind("mousedown",fn)
.unmouseup(fn) .unbind("mouseup",fn)
.unmousemove(fn) .unbind("mousemove",fn)
.unmouseover(fn) .unbind("mouseover",fn)
.unmouseout(fn) .unbind("mouseout",fn)
.unchange(fn) .unbind("change",fn)
.unreset(fn) .unbind("reset",fn)
.unselect(fn) .unbind("select",fn)
.unsubmit(fn) .unbind("submit",fn)
.unkeydown(fn) .unbind("keydown",fn)
.unkeypress(fn) .unbind("keypress",fn)
.unkeyup(fn) .unbind("keyup",fn)
.unerror(fn) .unbind("error",fn)

Per fortuna, le funzioni eliminate figurano tra quelle più raramente utilizzate!

Da notare, contrariamente a quello che era stato annunciato inizialmente, le funzioni .width() e .height() non sono state eliminate.

Per ricercare queste funzioni all’interno dei vostri script, ecco l’espressione regolare che vi consentirà trovarle tutte:

ad esempio si può utilizzare nel seguente modo in linea di comando:

grep -E "espressione-regolare" `find . -name '*.js'`

Il plugin compat

Per poter avvalersi dei miglioramenti di jQuery senza dover aggiornare tutti i vostri script (almeno in un primo tempo), potete aggiungere, subito dopo jquery.js e prima dei vostri script, il plugin di compatibilità 1.0 jquery-compat-1.0.js, che definisce le funzioni non più esistenti, e ripristina il vecchio comportamento di :nth-child(), incrementando di un’unità il valore passato. Noi consigliamo in ogni caso di aggiornare rapidamente i vostri script a jQuery 1.1; non è poi così difficile, e ne vale la pena!

Ecco come utilizzare il plugin compat :

<html>
<head>
 <script src="jquery-1.1.js"></script>
 <script src="jquery.compat-1.0.js"></script>
 <script>
   $(document).ready(function(){
       // Il vostro vecchio codice basato su jQuery 1.0.x
       var id = $("div:nth-child(0)").id();
   });
 </script>
</head>
<body></body>
</html>

Se avete delle domande, non esitate ad scrivere adoperando il modulo in basso.

P.S.

Questa è una sintesi di due messaggi di John Resig sul blog jQuery: http://jquery.com/blog/2007/01/08/j... http://jquery.com/blog/2007/01/11/j.... Traduzione: Renato Adattamento: Fil

Rispondere all'articolo

1 Messaggio


Ultimi commenti