Quels sont les avantages de l'utilisation de Javascript uniquement par rapport à l'utilisation de JQuery uniquement?
J'ai une expérience limitée avec le codage JavaScript et JQuery. J'ai ajouté des bits et des extraits de chacun aux pages HTML, mais j'ai principalement codé des éléments côté serveur dans d'autres langues. J'ai remarqué que si vous pouvez théoriquement faire les mêmes choses en utilisant l'une des deux approches (et bien sûr vous pouvez même les mélanger dans le même projet), il semble y avoir une tendance à toujours commencer à utiliser JQuery dès le début quelles que soient les exigences du projet.
Je me demande donc simplement, y a-t-il des avantages ponctuels à ne pas utiliser JQuery uniquement, mais à utiliser simplement du JavaScript ancien?
Je sais que cela ressemble à une non-question car on peut dire à ce sujet "qu'il n'y a pas de réponse définitive" ou "cela peut être débattu pour toujours", mais j'espère en fait des réponses ponctuelles telles que "vous pouvez le faire en une approche et vous ne pouvez pas le faire avec l'autre ".
Selon le commentaire de scrwtp, je ne me réfère pas seulement à la partie de gestion DOM. Ma question est plutôt: JQuery est une bibliothèque. Pour Javascript. Ce que je trouve étrange à propos de cette bibliothèque par rapport à d'autres bibliothèques pour d'autres langues, c'est que dans le cas de JQyery, elle semble être conçue pour pouvoir l'utiliser exclusivement et ne pas avoir besoin de toucher Javascript directement. C'est par opposition à disons Hibernate et SQL, où même si la bibliothèque (ou plutôt le framework dans ce cas, mais je pense que l'analogie s'applique toujours) prend la poignée sur BEAUCOUP d'aspects, vous pouvez toujours utiliser SQL lorsque vous l'utilisez , au moins pour certains cas marginaux. Cependant, dans le cas JQuery & Javascript, vous pouvez faire tout ce que vous faites avec Javascript en utilisant uniquement JQuery (ou du moins c'est ce qu'il me semble).
Selon le commentaire de Stargazer712: oui, je suis d'accord avec vous, la question ici est, comme vous le dites "juste une question de savoir comment vous allez utiliser JavaScript". C'est ce que j'essayais vraiment de demander, mais j'ai fait de mauvaises formulations. Voici une autre analogie: Spring Expression Language . C'est une bibliothèque Java. Vous ne pouvez pas l'utiliser sans Java, elle est basée sur Java, et tout au long de cela, vous pouvez toujours utiliser Java. Mais dans la pratique, vous pouvez ajouter ceci bibliothèque dans un projet Java, puis écrivez tout votre code en utilisant le langage d'expression de Spring EL qui rend effectivement votre code ne pas ressembler à Java du tout, et c'est même un paradigme déplacement (par exemple, vous n'avez plus d'application de type forte lorsque vous utilisez cela.) Bien que je comprenne que JQuery est juste une bibliothèque JS, il me semble qu'en pratique, cela a le même effet que Spring EL avec Java, c'est-à-dire que vous pouvez utilisez uniquement ses API tout au long d'un projet et évitez les API JavaScript. Et je me demandais si c'était une bonne chose à faire, quels pourraient être les pièges, etc.
(et oui, après avoir lu les réponses de tout le monde, je comprends que:
une. ma question est quelque peu absurde jusqu'à un certain point
b. même si la question était parfaitement exacte, la réponse serait à peu près "non, vous ne pouvez pas utiliser JQuery uniquement tout le temps")
Tout d'abord - il est impossible d'utiliser jQuery uniquement, tout ce que jQuery fait est d'ajouter un objet $ à votre portée globale, avec un tas de méthodes. Des bibliothèques encore plus manipulatrices comme le prototype ne sont pas une alternative au javascript, elles sont une ceinture d'outils pour résoudre les problèmes courants.
Les principaux avantages de l'ajout de jQuery à votre ceinture d'outils seraient:
Javascript n'est plus seulement un langage côté client, et parce que jQuery dépend tellement du DOM, c'est un terrible candidat pour passer au serveur. Je recommande fortement de mettre un peu de temps à comprendre pourquoi vous utilisez jQuery (poser cette question est une excellente première étape!), Et à évaluer quand cela est nécessaire. jQuery peut être dangereux, quelques-uns des principaux dangers sont:
En fin de compte, jQuery est une bibliothèque incroyablement utile et utile, lorsqu'elle est utilisée correctement. Cependant, ce n'est pas une alternative au javascript. C'est une bibliothèque, tout comme zepto.js , YUI , Dojo , MooTools , et Prototype - dont l'un peut être un bien meilleur choix pour votre projet actuel.
Javascript est un langage mal compris, et n'est récemment considéré comme quelque chose de plus qu'un langage de script par la plupart des gens. Je recommande vraiment de le lire davantage, voici quelques bons endroits pour commencer:
Edit 07/2014 - J'ai remarqué que ce post retient toujours l'attention, j'ai donc ajouté un tas de liens. Ce ne sont pas dans un ordre particulier, mais devraient être utiles.
Je suis sûr qu'il y a beaucoup d'autres ressources formidables auxquelles je ne pense pas ou que je ne connais pas, d'autres répondeurs devraient se sentir libres d'ajouter à cette liste.
Il y a des avantages, mais on peut se demander s'ils l'emportent vraiment sur les inconvénients.
Le principal est que vous économisez de la bande passante et obtenez des réponses plus rapides. jQuery ajoute un autre ~ 30 Ko à votre réponse. Sur certains réseaux (et dans certains pays), cela pourrait signifier quelques millisecondes supplémentaires. D'un autre côté, cependant, vous pouvez configurer la mise en cache pour cela assez facilement en utilisant votre serveur Web (ou, comme l'a dit Xion, utilisez-le depuis le site de Google pour qu'il n'affecte pas le vôtre et qu'il soit toujours mis en cache).
La deuxième chose est que vous n'aurez peut-être besoin que de fonctionnalités très simples, et que le téléchargement et la configuration de jQuery peuvent prendre plus de temps que la simple mise en œuvre de ce dont vous avez besoin.
Et enfin, vous voudrez peut-être déployer votre propre cadre, ce qui est surtout une mauvaise idée, mais certaines personnes ont leurs raisons.
Si toutefois vous jetez jQuery simplement parce que vous êtes intimidé par la courbe d'apprentissage, alors vous devriez reconsidérer. D'autant plus que c'est plutôt doux.
Autant que je sache, il n'y a vraiment que deux avantages de l'utilisation de Vanilla javascript par rapport à une bibliothèque telle que JQuery , MooTools , etc.
Il convient de souligner pourquoi vous souhaitez utiliser une bibliothèque javascript, pour laquelle il existe de nombreuses:
J'avais l'habitude de travailler dans une boutique en ligne qui était résolue à utiliser le javascript Vanilla parce que jQuery était grand et effrayant. Cette décision, principalement influencée par un seul "développeur javascript", a été la source de nombreux bogues de navigateur et d'un développement lent et essayer d'entrer dans sa base de code a été une expérience époustouflante. Écrire votre propre framework peut sembler être une bonne idée, mais si vous voulez embaucher de nouveaux développeurs, ils ne peuvent pas rapidement entrer et aider. Ensuite, il y a aussi la question du facteur de bus à considérer.
Comme je l'ai dit, j'y travaillais ... il y avait des pâturages plus verts ailleurs. : ^)
Il se trouve que je mélange un peu l'utilisation des deux. La principale raison en est que pour certaines applications (pensez aux extensions chrome), vous n'avez pas besoin de la prise en charge de plusieurs navigateurs. Ce qui signifie que je peux profiter de nouvelles avancées comme css3 qui, avec des choses comme les transitions, peuvent simplifier votre code d'une tonne par rapport à l'utilisation de jquery.
Aussi, je fais souvent quelque chose de personnalisé. Comme tous les autres l'ont dit, vous ne devriez pas réinventer la roue. Mais quand on vous demande de faire des fonctionnalités folles, je trouve souvent qu'il est beaucoup plus facile de l'écrire moi-même, puis d'essayer de pirater un plugin jquery qui est proche mais pas une correspondance parfaite.
J'ai également travaillé avec des développeurs qui ne travaillent qu'avec jquery. Et je dois dire qu'ils ont compromis la fonctionnalité beaucoup plus souvent que s'ils ne pouvaient pas trouver un plugin jquery qui a fait ce qu'ils voulaient.
À un moment donné du développement Web, il vous sera demandé de faire quelque chose qui n'est pas pré-emballé dans une bibliothèque. Donc, à ce stade, vous feriez mieux de vous assurer de comprendre comment fonctionne réellement le langage de base.
Donc TLDC: Utilisez les deux, vous êtes désavantagé en utilisant uniquement Vanilla et vous êtes désavantagé si vous ne connaissez pas Vanilla à l'intérieur et à l'extérieur et insistez pour toujours utiliser jquery.
La seule chose à laquelle je peux penser que vous ne pouvez pas faire sans JQuery serait d'utiliser des plugins JQuery; même alors, vous pourriez écrire votre propre bibliothèque JS qui fournirait exactement ce dont le plugin a besoin.
Pensez-y comme ceci: JQuery est une bibliothèque Javascript open-source écrite en Javascript; vous pouvez regarder la source et ainsi apprendre à faire tout ce qu'elle fait.
Vous ne pouvez pas utiliser JQuery sans utiliser du vieux Javascript. Vous n'utiliserez probablement pas document.getElementById
, mais vous définirez toujours les fonctions et les variables de la manière Javascript standard; vous pourriez même écrire une boucle for
standard.
Le principal avantage de l'utilisation de JQuery est à peu près le même que n'importe quelle autre bibliothèque tierce dans n'importe quel langage: vous n'aurez pas à écrire autant de code pour implémenter la logique spécifique à votre application.
Ne laissez pas la taille vous effrayer. version CDN est un téléchargement de ~ 33k qui sera mis en cache par le navigateur de l'utilisateur après le premier coup de page.
Si vous êtes inquiet au sujet des performances, vous devriez essayer d'utiliser Vanilla js chaque fois que possible. les frameworks ajoutent non seulement une surcharge de bande passante, mais également une surcharge de traitement. Et jQuery est également compatible avec les navigateurs assez anciens.
si vous travaillez sur des applications mobiles ou des jeux (ou les deux combinés), vous avez d'abord besoin de performances et d'efficacité des ressources.
jQuery et les plugins peuvent accélérer votre développement, mais surtout si vous comptez sur des plugins jquery tiers, vous devez savoir ce qu'ils font à l'intérieur. Beaucoup d'entre eux sont de mauvais exemples de qualité et d'efficacité du code.
jQuery peut être 2 à 10 fois plus lent que JavaScript natif. Et cela peut facilement encourager les développeurs à ne pas concevoir correctement leur interface et à trop compter sur les sélecteurs jQuery qui sont beaucoup plus lents que natifs.