J'ai écrit une application JavaScript qui s'exécute Prototype & Scriptaculous. J'envisage de le déployer en tant que produit open source & aimerait pouvoir aussi fonctionner sur jQuery - j'utilise généralement jQuery pour la plupart de mes autres applications, à l'exception du site pour lequel cette application a été conçue. Je pensais à l'origine à la construction de deux applications distinctes, mais leur maintenance prendrait du temps. Au lieu de cela, je considère la construction d'une couche d'abstraction de bibliothèque qui détecte si la page exécute jQuery ou Prototype, puis appelle les méthodes appropriées. Je ne vais pas résumer l'ensemble des bibliothèques, juste la fonctionnalité applicable à mon application - à savoir les sélecteurs, les événements & effet. Le cœur de mon application contient moins de 500 lignes de code, il n'y a donc pas grand chose à craindre.Écrire une abstraction d'abstraction JavaScript - est-ce sain d'esprit?
Ainsi, au lieu d'appeler $('id')
je qualifierais LA.$('id')
(LA pour la bibliothèque d'abstraction) qui remettrait $('id')
en prototype et $('#id')
dans la requête etc & hellip;
Est-ce que cela vous semble raisonnable? Je ne peux pas penser à des obstacles techniques, même si je m'attendais à ce que quelqu'un l'ait déjà essayé. Je n'ai rien trouvé de similaire dans mes recherches.
Mon intention est simplement de faire fonctionner mon application principale sur les deux bibliothèques, pas nécessairement de produire un abstracteur de bibliothèque complet que d'autres peuvent utiliser. Malheureusement, je ne peux pas passer l'application à jQuery car je dois l'utiliser sur une application beaucoup plus grande qui est fixée sur Prototype. J'ai commencé à coder une solution et elle semble fonctionner (bien que quelque peu obscurcie la base de code). Je posterai le code et les expériences de mon abstraction ici quand c'est fait. – zemaj
@zemaj - Si vous envisagez de le publier en open-source, vous obtiendrez des demandes de prise en charge complète des bibliothèques, ce qui est une perte de temps. Il suffit de déployer pour Prototype, et ne vous inquiétez pas pour jQuery. –