Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 23 reacties, 4.579 views •
Bron: jQuery, submitter: hAl

Voor het vereenvoudigen van client-side-scripting binnen html kan je gebruik maken van jQuery. Dit is een opensource-JavaScript-library waarvan de syntax het makkelijker maakt om door documenten te navigeren, DOM-elementen te selecteren, animaties in elkaar te zetten, events af te handelen en natuurlijk het ontwikkelen van Ajax-applicaties. Daarnaast kan de functionaliteit worden uitgebreid door plugins te gebruiken. Voor meer informatie verwijzen we jullie door naar deze pagina. De ontwikkelaars hebben versie 1.6 de deur uitgedaan, voorzien van de volgende aankondiging:

jQuery 1.6 Released

jQuery 1.6 is now live and available for consumption! We’re quite proud of this release, it includes a major rewrite of the Attribute module and a number of performance improvements.

Please take this opportunity to thank members of the jQuery Team and the jQuery bug triage team for their help in getting this release out the door.

You can get the code from the jQuery CDN:
http://code.jquery.com/jquery-1.6.js
http://code.jquery.com/jquery-1.6.min.js

You can also get the code from other CDNs as well:
Microsoft: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.min.js
(Google is still uploading their copy.)

We want to encourage everyone from the community to try and get involved in contributing back to jQuery core. We’ve set up a full page of information dedicated towards becoming more involved with the team. The team is here and ready to help you help us!

In fact, we’re already getting started working on jQuery 1.7. We’re welcoming feature proposals for jQuery 1.7. If you have any suggestions please submit them using the aforementioned form.

jQuery 1.6 Change Log

All of the API changes that occurred in this release can be found in the jQuery API documentation: http://api.jquery.com/category/version/1.6/

Breaking Changes

In most releases we try to main compatibility with existing code. However, there are a few cases where jQuery 1.6 may require changes to existing code:

Case-mapping of data- attributes
    jQuery 1.5 introduced a feature in the .data() method to automatically import any data- attributes that were set on the element and convert them to JavaScript values using JSON semantics. In jQuery 1.6 we have updated this feature to match the W3C HTML5 spec with regards to camel-casing data attributes that have embedded dashes. So for example in jQuery 1.5.2, an attribute of data-max-value="15" would create a data object of { max-value: 15 } but as of jQuery 1.6 it sets { maxValue: 15 }.
.prop(), .removeProp(), and .attr()
    In the 1.6 release we’ve split apart the handling of DOM attributes and DOM properties into separate methods. The new .prop() method sets or gets properties on DOM elements, and .removeProp() removes properties. In the past, jQuery has not drawn a clear line between properties and attributes. Generally, DOM attributes represent the state of DOM information as retrieved from the document, such as the value attribute in the markup <input type="text" value="abc">. DOM properties represent the dynamic state of the document; for example if the user clicks in the input element above and types def the .prop("value") is abcdef but the .attr("value") remains abc.

    In most cases, the browser treats the attribute value as the starting value for the property, but Boolean attributes such as checked or disabled have unusual semantics.

    For example, consider the markup <input type="checkbox" checked>. The presence of the checked attribute means that the DOM .checked property is true, even though the attribute does not have a value. In the code above, the checked attribute value is an empty string (or undefined if no attribute was specified) but the checked property value is true.

    Before jQuery 1.6, .attr("checked") returned the Boolean property value (true) but as of jQuery 1.6 it returns the actual value of the attribute (an empty string), which doesn’t change when the user clicks the checkbox to change its state.

    There are several alternatives for checking the currently-checked state of a checkbox. The best and most performant is to use the DOM property directly, as in this.checked inside an event handler when this references the element that was clicked. In code that uses jQuery 1.6 or newer, the new method $(this).prop("checked") retrieves the same value as this.checked and is relatively fast. Finally, the expression $(this).is(":checked") works for all versions of jQuery
Versienummer:1.6
Releasestatus:Final
Besturingssystemen:Java, Scripttaal
Website:jQuery
Download:http://docs.jquery.com/Downloading_jQuery
Licentietype:GPL

Reacties (23)

Ik ben zelf nog altijd een groot fan van MooTools. Ik vind dat allemaal net iets eleganter in elkaar zitten. Helaas lijk ik nog zo'n beetje de enige te zijn die dat denkt, waardoor ik steeds meer begin te twijfelen of ik niet ook de switch naar JQuery moet maken (vanwege de veel grotere gebruikersgroep).
In welk opzicht is MooTools 'eleganter' dan jQuery?
Let op het stukje "ik vind", want ik ben me terdege bewust dat het mijn mening en geen feit is.

Wat ik eleganter vind aan MooTools is de hele OO-gedachte erachter. Je werkt met objecten en classes en maakt daardoor (als je het goed doet) veel generieke code die je gemakkelijk kunt hergebruiken. Keerzijde van de medaille is dat het minder geschikt is om even "snel" iets in elkaar te zetten.

Zie ook deze uitstekende samenvatting: http://jqueryvsmootools.com/. Het is wat mij betreft niet zo dat één van de twee beter is, het is maar net waar je voorkeur ligt wat betreft de manier van werken.
* sanderev66 leest de link
I am a MooTools developer. I work on the MooTools framework.
* sanderev66 stopt met lezen.

Wij van WC eend adviseren WC eend.
Jammer dat je gestopt bent met lezen, want het stuk is heel neutraal geschreven. De conclusie is dan ook helemaal niet dat MooTools "beter" is dan JQuery.
Diezelfde persoon schrijft ook nog het volgende na de door sanderv66 geciteerde zinnen:
"I'll also point out that I don't use jQuery that often." Hoe degelijk is dan een vergelijking?


Die site laat Opera 11.10 wel goed over z'n nek gaat trouwens. CPU schiet in de hoogte en browser reageert nauwelijks.

[Reactie gewijzigd door Amorax op 6 mei 2011 12:20]

Omdat het over de filosofie achter beide frameworks gaat. Niet welke beter presteert of de minste KB's per functie oplevert. Zo'n stuk kun je prima schrijven als je niet al jaren met een bepaald framework gewerkt hebt.

En nogmaals: als de conclusie was geweest dat MooTools veel beter was had ik het ook een beetje raar gevonden. Maar daar gaat die site nou juist niet om.
Gelezen via FireFox.
Toch hangt er een zweem van voorkeur naar MooTools over het artikel. Als je daar doorheen prikt is het een interessant stuk dat een duidelijk beeld geeft van MooTools en de verschillen en na/voordelen ten opzichte van jQuery.
Nee, maar hij zal nooit op de plus punten van JQuery gaan focussen. Hij kan natuurlijk niet zeggen dat zijn tool geweldig is en dat JQuery prut is. Maar dingen als:
jQuery aspires to "change the way you write JavaScript" while MooTools is designed for the intermediate to advanced JavaScript developer.
Maw.: iedere zelf respecterende programmeur gebruikt MooTools. En JQuery is voor de noobs.

Zijn duidelijk.

Verder is zijn kennis van JQuery minimaal te noemen. Bij één van zijn voorbeelden:
Note that we were able to integrate the new logic in a way that doesn't expand the definition until after the content comes back from the server (which we couldn't do with the jQuery version).
Grappig, ik heb zoiets nog niet zo lang geleden met JQuery gebouwd.

Maw. een éénzijdige review is niet genoeg om dit te beoordelen.
Nou, je leest wel wat je wilt lezen geloof ik. Ik haal hier niet uit dat JQuery voor "noobs" is hoor. Bovendien haalt hij verderop een heel belangrijk voordeel van JQuery boven MooTools aan: de enorme userbase. Voor mij (en voor anderen ook vermoed ik) een reden om een overstap te overwegen.
Ik ben zelf ook meer liefhebber van prototype/mootools omdat het qua paradigma veel dichter bij core javascript ligt. 'Terse' scripting (wat jQuery propageert) heeft voor- en nadelen; zelf vind ik overvloedige chaining de begrijpelijkheid van code niet ten goede komen. Daarbij zijn veel methoden in jQuery een soort black 'magic' box wat het lastig maakt om in te schatten wat efficient is en wat niet.

Overigens gebruiken we hier op Tweakers.net een custom toolkit en geen bestaande library/framework.
Overigens gebruiken we hier op Tweakers.net een custom toolkit en geen bestaande library/framework.
Iets met het Wiel, en het heruitvinden ervan.
Niet dat dat verkeerd is
De basis van onze toolkit is al ongeveer even oud als prototype; sowieso was dat een tijd waarin nog veel geëxperimenteerd werd en gezocht werd naar 'best practices', en ik was daar zelf ook heel actief in :)

Verder is onze basis toolkit behoorlijk compact in vergelijking met andere libraries/frameworks: non-minified en niet gzipped 63KB tegenover 160KB voor prototype, 143KB voor mootools en 227KB voor jQuery :)
Precies wat ik bedoel met "niet dat dat verkeerd is", soms heb je enkel specifieke dingen nodig of moet je dingen aanpassen. Die stop je dan in je eigen library.

En ja, dat doe ik ook :)
(echter voor web applicaties gebruik ik iig OOK JQuery, vind het ontzettend handig)

[Reactie gewijzigd door sanderev66 op 6 mei 2011 12:24]

jQuery is dan misschien wel beetje groot maar een ander voordeel is dat vrijwel iedereen het al in zijn browser cache heeft staan door bijvoorbeeld Google CDN.
Ik denk dat dat effect tegenvalt, zeker gezien het feit dat niet alle sites dezelfde versie gebruiken.
Hmmm ... dan moet het wel een heel goed wiel zijn hoor.
Je bent echt niet een van de weinige MooTools gebruikers. Ikzelf ben op dit moment een jQuery gebruiker, mede omdat mijn javascript skills niet enorm zijn en er voor jQuery gewoon een heleboel beschikbaar is.

Uit ervaring echter weet ik dat veel grote ontwikkelaars juist MooTools gebruiken vanwege het OO. Daarnaast biedt jQuery een aantal eigen ontwikkelde functies met extra's waar de ontwikkelaars liever hun eigen weg gaan.
Mootools ken ik eigenlijk alleen van Joomla :) Daar zit het standaard in. Het werkt goed maar is even zoeken.

Wordpress extensies hebben weer een voorkeur voor jQuery. Nadeel is weer het chaining concept, waardoor ik zelfs als ontwikkelaar, af en toe grote moeite heb om de code goed in een keer te kunnen lezen.

jQuery lijkt echter de grote winnaar aan het worden. Als een gigant als Microsoft erachter gaat staan en ze zelfs code gaan submitten, is het toch vechten tegen de bierkaai.
Briljant geschreven stukje software, ik wou dat ik dat kon! Ik gebruik het graag en in vergelijking met pure javascript typen heeft me dit wel een factor 10 aan tijd gescheeld bij veel websites.
Soms is het lastig te voorspellen wat jQuery gaat doen en debuggen vind ik ook niet bijzonder eenvoudig, maar naar mate je het beter onder de knie krijgt heb je daar niet zo veel last meer van.
@crisp: jQuery heeft ook de mogelijkheid van een custom build :) dus als je animate niet nodig hebt kan je die er uit laten.

PrototypeJs is volgens mij een beetje een dood, de laatste versie dateert alweer uit 2010.

jQuery vs MooTools, ja daar heb ik niet echt een mening over.
Zelf gebruik ik jQuery omdat het lekker werkt en niet erg obstructief is vergeleken met PrototypeJs die de hele JavaScript API probeert te herschrijven.

Juist in een taal als JavaScript waar snelheid en memory leaks direct merkbaar is wil ik niet teveel doen om iets klaar te krijgen. jQuery vult dit mooi aan, en dat is voor mij voldoende.

"zelf vind ik overvloedige chaining de begrijpelijkheid van code niet ten goede komen".
Dat is een mentaliteitskwestie, alles aan elkaar plakken is inderdaad niet de bedoeling maar voor de meeste dingen is erg handig. Helemaal omdat bestanden hierdoor kleiner blijven.

En een persoonlijk voordeel omdat ik dagelijks niet zoveel met JavaScript doe, ik niet constant naar de handleiding moet grijpen omdat ik vergeten ben hoe nu ook alweer een click event te registeren. In jQuery is dit $(element).click( eventFunc ); en klaar.


Of jQuery of MooTools of zelfs YUI beter is niet te zeggen, gebruik wat je prettig vind werken en wat werkt. Als MooTools voor een bepaald project een betere kandidaat is gebruik die.

Om nog even tegen het zere been te trappen, jQuery en MooTools gebruiken de zelfde selector engine O-) Sizzle.js
En een persoonlijk voordeel omdat ik dagelijks niet zoveel met JavaScript doe, ik niet constant naar de handleiding moet grijpen omdat ik vergeten ben hoe nu ook alweer een click event te registeren. In jQuery is dit $(element).click( eventFunc ); en klaar.
Dat heb ik dus precies andersom; in vanilla javascript ken ik prima mijn weg, voor jQuery moet ik alles opzoeken :P

Op dit item kan niet meer gereageerd worden.



Apple iPhone 6Samsung Galaxy Note 4Apple iPad Air 2FIFA 15Motorola Nexus 6Call of Duty: Advanced WarfareApple WatchWorld of Warcraft: Warlords of Draenor, PC (Windows)Microsoft Xbox One 500GBWebsites en communities

© 1998 - 2014 Tweakers.net B.V. Tweakers is onderdeel van De Persgroep en partner van Computable, Autotrack en Carsom.nl Hosting door True