2010-10-28 8 views
6

stavo controllando HTML5 nuovi comandi javascript e non v'è qualcosa di simile a:JQuery non esisterà in futuro?

var els = document.querySelectorAll("ul li:nth-child(odd)"); 

Ciò consente di trovare tutti gli elementi di sintassi CSS. Ma sono certo che Jquery abbia qualcosa di simile a questo.

La domanda è, come i browser sono sempre le API JavaScript meglio ...

  • jQuery non esistere in futuro? È sicuro tenere JQuery nei nostri siti Web per i prossimi anni?
+5

Lo scopo di jQuery è quello di semplificare le differenze tra i browser. Quindi, mentre alcuni potrebbero implementare questo comportamento, molti non lo faranno, ma jQuery ti permetterà di usare la funzionalità senza perdere il supporto per loro. –

+0

Se qualcosa, queste modifiche renderanno il rendimento di jQuery ** migliore ** in futuro. Vedi le note sulla versione di jQuery 1.4.3, che menzionano che hanno iniziato a usare querySelectorAll dove è disponibile, e hanno fatto una petizione ai fornitori di browser per includere un metodo matchSelector. http://blog.jquery.com/2010/10/16/jquery-143-released/ – Yahel

+1

Link pertinente: http://youmightnotneedjquery.com/ –

risposta

17

jQuery fa molto di più di un semplice motore di selezione (Sizzle), e Sizzle utilizza querySelectorAll()se è disponibile dal momento che la versione inclusa in jQuery 1.4.3.

No, non sta andando da nessuna parte, i selettori sono solo un pezzo del puzzle.

+0

Sì, ma i selettori sono il "più grande *" pezzo del puzzle " ed è ciò che ha reso popolare jQuery, ed è esattamente quel pezzo che sta rapidamente diventando obsoleto dai moderni standard Web e dai modelli di sviluppo web, come React che astrae ulteriormente il DOM. – Aaron

5

Ovviamente è sicuro mantenere JQuery sui nostri siti web. Ricorda, il collegamento alla libreria e basato su Javascript. Non richiede alcun software speciale sul lato client (a parte Javascript).

Per quanto JQuery sia obsoleto in futuro, no no no no no. Fa molto più che solo i selettori.

1

Come altri hanno già detto, jQuery è più di un motore di selezione, fornisce gestione degli eventi, concatenamento, animazioni, toolkit dell'interfaccia utente, astrazione e molto altro. Dai un'occhiata al sito Web di jQuery.

I selettori non sono utili. Utilizzi i selettori per eseguire azioni su quegli elementi.

jQuery prevede:

  • JavaScript astrazione
  • Animazione
  • controlli dell'interfaccia utente e widget (slider, fisarmoniche, ecc)
+2

Per essere chiari, l'interfaccia utente di jQuery non è nel core jQuery, è interamente un progetto separato. –

+1

Sì, lo so. Tuttavia utilizza il core jQuery –

9

E 'vero che jQuery è molto più di un semplice motore di selezione. Ma sembra come un sacco di che cosa essa potrebbe diventare ovviato da sanguinamento browser bordo, ad esempio:

animazioni

effetti di jQuery, come animate(), fadeOut(), ecc sono presi cura di dalle transizioni CSS.

Ajax

jQuery si prende cura di astrarre le differenze del browser, ad esempio utilizzando ActiveXObject("Microsoft.XMLHTTP") invece di XmlHttpRequest() nelle vecchie versioni di IE. Questo fallback sta rapidamente diventando inutile.

Ajax di jQuery fornisce anche JSON-P per l'Ajax tra domini. Questo non sarà necessario con il corretto cross-domain XmlHttpRequest implementato negli ultimi browser.

vincolante

jQuery astrae attachEvent di IE vs tutti gli altri addEventListener Event. Ma poiché IE9 fornirà il metodo standard, quell'astrazione diventerà anche non necessaria.

Ciò significa che "il passaggio a JavaScript non elaborato" diventerà meno barbaro rispetto al passato. Tuttavia, è ancora bello avere la libreria. Prendi il genio centrale di jQuery, l'idea delle scenografie ha funzionato in parallelo. In jQuery si scrive:

jQuery("#something").hide(); 

Grezzo JavaScript si scrive:

var things = document.querySelectorAll("#something"); 
if (things.length > 0) { 
    things[0].style.display = "none"; 
} 

Questo tipo di grazia, non sarà mai completamente disponibile da incorporato metodi DOM.

+1

, ma è ancora meglio legare la roba della delega all'evento con .live –

+0

Sì, buon punto. Non riesco a pensare a nulla nei piani HTML5 che fornisce funzionalità live(). – jpsimons

Problemi correlati