Quels sont les avantages de jQuery par rapport aux autres bibliothèques JavaScript?
j'essaie de convaincre ceux qui établissent des normes dans mon organisation actuelle que nous devrions utiliser jQuery plutôt que Prototype et/ou YUI. Quels sont les avantages convaincants que je peux utiliser pour les convaincre?
18 réponses
Les 3 principaux avantages de jQuery:
- son poids léger par rapport à d'autres frameworks javascript
- il a une large gamme de plugins disponible pour divers besoins spécifiques
- il est plus facile pour un concepteur d'apprendre jQuery car il utilise la syntaxe CSS familière. jQuery is Javascript pour les Concepteurs
je dirais mes principales raisons de l'utilisation de JQuery:
- Grande communauté de développement, et de nombreux plugins.
- C'est sur le radar de Microsoft et ils ajoutent un peu de soutien de plugin et débogage des capacités.
- très bonne documentation pour une bibliothèque tierce partie.
- Léger.
- les capacités de chaînage sont très puissantes.
à mon avis, après avoir essayé brièvement le Prototype, puis plus tard en essayant et en aimant jQuery: L'API jQuery se sent juste beaucoup plus propre et bien pensé. John Resig, le créateur/architecte de jQuery sait vraiment ce qu'il fait, et cela se voit dans la conception de jQuery, ainsi que dans les divers autres projets JavaScript impressionnants dont il a fait partie.
l'ensemble des concepts de questionnement et de mise en chaîne s'accorde très bien avec la manipulation de DOM, qui semble être le plus gros de ce que les gens utilisez les bibliothèques JS pour. La documentation en ligne est fantastique. La Performance semble être très bonne. L'ensemble de la bibliothèque s'intègre dans un paquet relativement petit étant donné ses capacités. L'architecture du plugin est également très agréable pour l'extensibilité.
honnêtement, je n'ai pas essayé YUI, donc je ne peux pas faire beaucoup de commentaires là-dessus. Je sais que c'est plutôt une gigantesque bibliothèque au total, mais vous pouvez choisir de télécharger/utilisez uniquement des modules spécifiques.
voici un test de vitesse plus récent que celui fourni ci-dessus. La dernière fois que j'ai couru, le dojo était le plus rapide suivi par jQuery, Mootools, Prototype, et finalement YUI. Remarque, j'ai couru dans Firefox 3 et les vitesses varient entre les navigateurs afin de le tester vous-même.
C'est le langage le plus réfléchi que vous trouverez -- c'est presque intuitif.
vous voulez la largeur d'un élément?
$('#something').width();
vous voulez saisir un élément, le cacher, changer sa couleur de fond et l'effacer?
$('#something').hide().css('background', 'red').fadeIn();
Que diriez-vous de rayage de table pour IE (en supposant hover
la classe est définie)?
$('table tr').hover(function() {
$(this).addClass('hover');
});
c'est un travail rapide et stupide comme celui-ci qui aide vraiment à vendre jQuery.
un avantage de jQuery est la grande communauté qui a développé une multitude de plugins.
il est très petit, surtout quand il est miniaturisé, et offre beaucoup dans la bibliothèque de base.
il est aussi facile à étendre, et a une communauté active.
- enfin, il est extrêmement facile d'apprendre; une fois que vous avez saisi les concepts de base, vous pouvez commencer à coder des solutions complexes tout de suite.
Un argument en faveur est ceci:
popularité + extensibilité
1) Si quelqu'un doit faire X avec JavaScript, c'est probablement fait avec jQuery
2) si cela a été fait beaucoup, il y a probablement un plugin, si ce n'est un support natif
Et si vraiment unique, il y a beaucoup de gens pour répondre à votre question sur soi ou ailleurs.
empiriquement chacun a ses propres forces et faiblesses étant donné un rôle très spécifique dans vos applications. Faire une détermination globale n'est peut-être pas l'approche la plus appropriée. Découper la tâche spécifique à la main et analyser la performance, gonfler, expérience, etc puis prendre une décision / proposition spécifique.
Bien...
tout d'abord, vous devriez réfléchir à la raison pour laquelle vous pensez que jQuery est bon, mais vous ne savez pas quels arguments utiliser pour convaincre un autre. Vous devriez peut-être vous convaincre d'abord. ;)
de toute façon, jQuery n'est qu'un autre cadre. Vous devriez utiliser pour ce qu'il fait le mieux. Si vous allez l'utiliser juste pour la manipulation de base DOM, oubliez-le! apprendre à utiliser js correctement et vous serez amende!
réfléchir à ce code HTML:
<body>
<div style="width: 400px; height: 400px; background-color: red">
<div style="width: 400px; height: 400px; background-color: red">
</div>
<script type="text/javascript">
function test1 (){
document.body.innerHTML = ""
var div = document.createElement("div");
document.body.appendChild(div);
$(div).width("400px").height("400px").css("background-color", "red");
}
function test2 (){
document.body.innerHTML = ""
var div = document.createElement("div");
document.body.appendChild(div);
$(div).width("400px");
$(div).height("400px");
$(div).css("background-color", "red");
}
function test3 (){
document.body.innerHTML = ""
var div = document.createElement("div");
document.body.appendChild(div);
div.style.width = "400px";
div.style.height= "400px";
div.style.backgroundColor = "red";
}
function test4 (){
document.body.innerHTML = ""
var div = document.createElement("div");
document.body.appendChild(div);
div.setAttribute("style", "width: 400px; height: 400px; background-color: red");
}
</script>
</body>
Mettre dans un fichier hml avec jquery disponible en <head>
Ensuite, ouvrez firebugg et lancez ce code: console.profil(); test1(); console.profileEnd ();
console.profile();
test2();
console.profileEnd();
console.profile();
test3();
console.profileEnd();
console.profile();
test4();
console.profileEnd();
Voir les résultats de votre auto!
mais si vous voulez faire quelques manipulations complexes sur le DOM qui vous demanderaient de faire plusieurs boucles ou de découvrir avec des éléments sur le DOM correspondent à certains critères, vous pouvez envisager d'utiliser jQuery car il mettra en œuvre ces procédures pour vous.
de toute façon, gardez à l' n'oubliez pas qu'il n'y a rien de mieux que de contrôler le DOM avec des références que vous conservez dans votre code. Son plus rapide et plus lisible pour les autres. Google "js meilleures pratiques".
j'utilise jQuery pour des choses complexes que je mettrais trop de temps à implémenter et qui finiraient avec quelque chose comme le code de jQuery. Dans ce cas, il est logique de l'utiliser!
amusez-vous!
je suis un Prototype, mais j'ai un peu utilisé jQuery. Honnêtement, il n'y a pas grand chose entre les deux que vous pouvez utiliser comme "argument de vente". Le YUI d'un autre côté est assez gonflé. Je ne l'utiliserai jamais pour une application commerciale.
j'ai trouvé cette page qui parle de ce sujet précis.
peut-être que tu ne devrais pas? Tout dépend du type d'application que vous construisez. Si vous construisez des applications GUI intensives, quelque chose comme, disons, Yahoo! Courrier, alors peut-être que vous devriez envisager D'utiliser YUI ou Mootools plutôt que jquery. Personnellement, je suis un grand fan de jQuery, mais il est certainement préférable d'ajouter une touche d'interaction à un UI autrement la plupart du temps statique. D'un autre côté, si c'est pour cela que vous l'utiliserez, alors jquery est beaucoup plus simple, a une meilleure syntaxe, et il a beaucoup de élan.
il a un bon jeu de plugins et le style de codage est discret ce qui signifie qu'il n'est pas trop difficile à remplacer. Il ya aussi une belle baisse en remplacement de Ruby on Rails helpers appelé jRails.
Performance-wise they are all pretty close:http://www.kenzomedia.com/speedtest/ cependant, MooTools, dojo, ext, et Prototype fonctionnent tous plus rapidement dans mon environnement.
Ma question est, pourquoi voulez-vous l'utiliser? Est-ce juste parce que vous la connaissez mieux?
Jquery existe depuis quelques années, donc comme tout le monde l'a dit, il a une communauté profonde, beaucoup de plug-ins, et un soutien décent. Ce que j'ai mis de côté, c'est que c'est facile à apprendre.
j'utilise jQuery pour quelques mois maintenant et nous avons trouvé une expérience agréable. Le framework est clair et concis il a une grande architecture de plugin et est très bien supporté mais les frameworks sont une chose très personnelle cependant et vous devriez probablement essayer quelques-uns il ne prend normalement pas longtemps pour repérer celui qui se sent le mieux pour vous.
Je ne suis pas sûr que cela vous importe, mais Microsoft a récemment annoncé un support pour jQuery dans la prochaine mise à jour de VS 2008 Ici c'est le blog post.
Vous pouvez entendre le John Resig, le gars derrière jQuery, parler d'autres cadres sur un récent podcast de Boagworld. Il pourrait vous aider à prendre votre décision son une pièce assez équilibrée.
Pourquoi ne pas créer une comparaison rapide?
Prendre une tâche comme "trouver tous les divs ou des tables qui contiennent des images de la classe foo et joindre un événement de clic à chacun d'eux ce qui les rend étendre de 50%."Ou quelque chose de plus pertinent pour ce que vous faites.
puis coder cela avec jQuery, Prototype, etc, et comparer. Laquelle est la plus courte? Plus facile à lire? Plus rapide à exécuter? (Vous pouvez trouver une comparaison de vitesse ici.)
si vous essayez de convaincre les gens d'un point de vue commercial, la récente décision de Microsoft d'expédier jQuery avec Visual Studio pourrait aider à établir une certaine crédibilité supplémentaire. Encore une fois, cela pourrait nuire à votre cause, en fonction de leurs opinions de Microsoft.