2010-10-28 11 views
6

Ich war die Überprüfung HTML5 neue JavaScript-Befehle aus und gibt es etwas Ähnliches wie:JQuery wird in Zukunft nicht existieren?

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

Auf diese Weise können Sie alle Elemente von CSS-Syntax finden. Aber ich habe Jquery auch etwas ähnliches.

Die Frage ist, wie Browser ...

  • JQuery nicht existieren in Zukunft besser Javascript-APIs bekommen? Ist es sicher, JQuery für die nächsten Jahre auf unseren Websites zu behalten?
+5

Der Zweck von jQuery ist es, die Unterschiede zwischen Browsern zu glätten. Während einige dieses Verhalten implementieren, werden viele dies nicht tun, aber jQuery ermöglicht es Ihnen, die Funktionalität zu nutzen, ohne die Unterstützung für sie zu verlieren. –

+0

Diese Änderungen führen dazu, dass jQuery in Zukunft ** besser ** wird. Weitere Informationen finden Sie in den jQuery 1.4.3-Versionshinweisen, in denen erwähnt wird, dass sie querySelectorAll verwenden, wo sie verfügbar sind, und sie haben die Browser-Anbieter aufgefordert, eine matchesSelector-Methode hinzuzufügen. http://blog.jquery.com/2010/10/16/jquery-143-released/ – Yahel

+1

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

Antwort

17

jQuery tut viel mehr als nur die Wähler Motor (Sizzle) und Sizzle verwendet querySelectorAll()wenn es seit der Version mit jQuery 1.4.3 enthalten verfügbar ist.

Nein, es geht nirgendwo hin, die Selektoren sind nur ein Teil des Puzzles.

+0

Ja, aber Selektoren sind die * größten * "Stück des Puzzles" Und genau das hat jQuery populär gemacht, und genau dieses Stück wird durch moderne Webstandards und Webentwicklungsmuster wie React, das das DOM noch weiter abstrahiert, schnell obsolet. – Aaron

5

Natürlich ist es sicher, JQuery auf unseren Websites zu halten. Denken Sie daran, dass Sie mit der Bibliothek verlinken, und das basiert auf Javascript. Es erfordert keine spezielle Software auf der Client-Seite (abgesehen von Javascript).

Da für JQuery in der Zukunft veraltet sein wird, nein nein nein nein nein. Es ist so viel mehr als nur Selektoren.

1

Wie andere schon erwähnt haben, ist jQuery mehr als eine Selektor-Engine, es bietet Event-Handling, Verkettung, Animationen, UI-Toolkits, Abstraktion und vieles mehr. Werfen Sie einen Blick auf die jQuery-Website.

Selektoren selbst sind nicht so nützlich. Sie verwenden Selektoren, um Aktionen für diese Elemente auszuführen.

jQuery bietet:

  • JavaScript Abstraktion
  • Animation,
  • UI-Steuerelemente und Widgets (Sliders, Akkordeons, etc)
+2

Um klar zu sein, jQuery UI ist nicht in jQuery Core, es ist ein separates Projekt vollständig. –

+1

Ja, mir ist klar. Es nutzt jQuery Kern jedoch –

9

Es stimmt, dass jQuery viel mehr als nur eine ist Wählmotor. Aber es scheint wie eine Menge von dem, was sonst noch, es könnte durch Rand Browser umgangen worden Blutungen, zum Beispiel:

Animationen

jQuery Effekte wie belebten(), fadeOut(), etc gesorgt von CSS Übergängen.

Ajax

jQuery kümmert sich um abstrahierende Browser Unterschiede, wie ActiveXObject("Microsoft.XMLHTTP") statt XmlHttpRequest() in älteren Versionen von IE verwenden. Dieser Fallback wird schnell überflüssig.

jQuery's Ajax bietet auch JSON-P für domainübergreifendes Ajax. Dies ist nicht notwendig mit der richtigen domänenübergreifenden XmlHttpRequest, wie sie in den neuesten Browsern implementiert ist.

Ereignis Bindung

jQuery abstrahiert attachEvent IE vs allen anderen addEventListener. Aber da IE9 die Standardmethode bereitstellen wird, wird diese Abstraktion auch überflüssig.

Dies alles bedeutet, dass "auf das rohe JavaScript herunterfallen" weniger barbarisch als in der Vergangenheit wird. Es ist jedoch immer noch schön, die Bibliothek zu haben. Nehmen Sie jQuerys zentrales Genie, die Idee von Sets, die parallel bearbeitet werden. In jQuery schreiben Sie:

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

In roh JavaScript schreiben Sie:

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

Diese Art der Gnade wird nie vollständig von gebautet DOM-Methoden zur Verfügung.

+1

was noch besser als Bindung ist das Ereignis Delegation Zeug mit .Live –

+0

Ja, guter Punkt. Ich kann mir nichts in den HTML5-Plänen vorstellen, die live() -Funktionalität bieten. – jpsimons

Verwandte Themen