Question

Quelle expérience pouvez-vous partager sur l’utilisation de plusieurs bibliothèques AJAX ?

Il existe des fonctionnalités utiles dans Prototype, certaines dans jQuery, la bibliothèque Yahoo, etc.Est-il possible d'inclure toutes les bibliothèques et d'utiliser ce que vous voulez de chacune, est-ce qu'elles fonctionnent généralement toutes bien avec les espaces de noms, etc.Par souci de rapidité, existe-t-il une limite pratique à la taille/au nombre de bibliothèques à inclure ou est-ce négligeable ?Y a-t-il des couples qui fonctionnent particulièrement bien ensemble (par ex.Prototype/Scriptaculous) ou des paires qui ne le font pas ?

Était-ce utile?

La solution

Vous pouvez utiliser toutes ces bibliothèques, mais je vous le déconseille fortement.Le téléchargement et l'exécution d'autant de JavaScript étoufferont probablement le navigateur et ralentiront l'expérience de votre utilisateur.Il serait bien préférable, du point de vue de l'utilisateur et du développeur, d'en choisir un.Moins de changement de contexte/architecture et moins de code à maintenir.

Comme d'autres réponses l'ont dit, la plupart ne sont pas en conflit.

Voir Yahoo! Performance exceptionnelle site pour plus d'informations.

Autres conseils

Vous pourriez utiliser API des bibliothèques Google AJAX.Il fournit un réseau de distribution commun et une architecture de chargement pour jQuery, prototype, script.aculo.us, MooTools et dojo

YUI a un espace de noms assez fortement et ne devrait donc pas entrer en conflit avec d'autres bibliothèques.

Comme mentionné, vous pouvez exécuter jQuery sans mode conflit.

Prototype fait J'ai quelques problèmes pour bien jouer avec d'autres bibliothèques, en partie parce qu'elle (ou elle le faisait auparavant) modifie les objets de base comme Array. Protosécurité tente de résoudre ces problèmes.

Script.aculo.us est simplement une bibliothèque de widgets qui se trouve au-dessus de Prototype, donc ces deux devraient évidemment bien fonctionner ensemble.

Tout cela signifie que vous pourrait utilisez YUI, jQuery, Prototype et Script.aculo.us dans votre application, mais vous constaterez peut-être que l'utilisation d'une seule bibliothèque facilite grandement la maintenance des choses.

Je suis également un partisan de jQuery, alors pardonnez mon manque de connaissances sur les autres, mais...

Ce qui rend jQuery si génial, c'est le mode sans conflit, donc par exemple, vous feriez :

$('#foobar').whatever();

En mode sans conflit, vous feriez ceci :

var jq = jQuery.noConflict();
jq('#foobar').whatever();

Une chose de moins à s'inquiéter.J'imagine que le prototype offre une fonctionnalité similaire, ainsi que Yahoo.

Quoi qu'il en soit, je ne voudrais pas trop prôner jQuery et rendre les gens fous, mais quelle que soit la bibliothèque que vous sélectionnez, je pense qu'elles peuvent toutes faire à peu près tout ce dont vous auriez besoin.Pensez particulièrement aux avantages de pas devoir apprendre trois bibliothèques différentes.

Tous les trois devraient en être capables.Sélectionnez celui que vous préférez et prolongez-le.:)

J'utilise jQuery et la version javascript uniquement du kit d'outils Microsof ajax côte à côte dans le projet en ce moment.

Je pense que je vais utiliser jQuery et finir par supprimer celui de Microsoft.Je suis très nouveau sur jQuery, mais plus j'en apprends, plus je suis séduit.

La meilleure stratégie est de ne pas utiliser plusieurs bibliothèques.Il est tentant de vouloir lancer davantage de bibliothèques pour résoudre un problème, mais cela est inefficace, sujet aux erreurs et rend votre code plus difficile à maintenir par d'autres.

Dans la plupart des cas, vous devriez pouvoir éviter d'utiliser plusieurs bibliothèques en comprenant le domaine de votre problème et quelle bibliothèque vous aidera au mieux à le résoudre.Il existe également une myriade de plugins et d'extensions pour toutes ces bibliothèques.

Par exemple, JQuery prend en charge les appels JSONP inter-domaines dès la sortie de la boîte et dispose d'une belle bibliothèque de widgets dans JQueryUI, ce qui n'est pas le cas de Prototype.

$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });

Prototype a un très bon support OO et il est facile de parcourir le DOM, mais il lui manque certaines fonctionnalités inter-domaines requises pour créer des widgets et des mashups.

var Foo =  Class.create({  
  initialize: function(name) {
    this.name = name;
  }   
});

var Bar = Class.create(Foo, {
  initialize: function($super, name)  {
     $super(name);
   }
});

Mootools a d'excellents effets, un bon support OO, des widgets vraiment solides et des requêtes inter-domaines, mais (et c'est peut-être juste mon impression), la communauté de développement n'est pas aussi collaborative et sociale avec la communauté mondiale (en dehors de Mootools) que l'autre. communautés (le prototype était de cette façon).Cela pourrait être dû au fait que leurs principaux développeurs vivent en dehors des États-Unis et ne sont donc pas en mesure d'assister à autant de conférences et de participer à la communauté dans son ensemble.Je ne laisserais pas cela vous décourager complètement, mais c'est quelque chose à garder à l'esprit.

Ruby on Rails utilise à la fois prototype et Scriptaculous par défaut, car il y a peu de chevauchement entre les deux.J'ai également utilisé des extraits de Yui en plus de cela et je n'ai jamais eu de problème.Les temps de chargement sont un problème, mais les bibliothèques sont généralement mises en cache, donc ce n'est que sur la première page chargée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top