2011-08-04 4 views
1

En ce moment, je travaille sur une application web existant qui est composé de plusieurs écrans, chacun effectuant une fonction distincte. Je suis en train de convertir plusieurs écrans en EXTJS 4 en utilisant l'approche MVC. Afin d'isoler l'impact de mes modifications et parce que nous n'avons pas le temps de convertir l'application entière en une seule fois, j'ai converti deux des écrans en deux applications EXTJS 4 distinctes. Chaque écran a maintenant son propre dossier dans lequel j'ai configuré une application en utilisant la structure de fichier appropriée et le fichier app.js.modèles de partage, vues et contrôleurs entre ExtJS 4 Applications

Ma question est la suivante: que je continue le développement, je veux utiliser des modèles d'une application (écran) dans une autre application. Comment partagez-vous les modèles, les vues et les contrôleurs entre les applications? Quelle est la meilleure approche?

Pour votre information, j'utilise autoloading pour tirer tout.

Merci

Répondre

2

Je ne voudrais pas utiliser autoload dans la production, car il génère de nombreuses requêtes HTTP pour obtenir tous les fichiers, ce qui ralentit la page vitesse de chargement. Ceci est bien documenté à Google's Page Speed et Yahoo's Best Practices for Speeding Up Your Web Site. La meilleure pratique consiste à prétraiter les ressources lors du déploiement de l'application et à générer un seul fichier javascript avec tout ce qui est envoyé dans une seule réponse compressée (GZIP). Il existe plusieurs outils pour ce travail, mais cela dépend fortement de votre chaîne d'outils. Vous pouvez par exemple jeter un oeil à la question SO Best JavaScript compressor pour obtenir des recommandations pour divers compresseurs (j'utilise Jammit).

Lorsque vous avez un compresseur JavaScript configurable flexible dans votre toolchain, vous pouvez configurer un dossier partagé où vous avez vos fichiers communs, comme model, stores et certains libs. Ceux-ci sont maintenant inclus dans les builds pour les différents projets.

Si vous avez une bonne raison de servir les fichiers javascript simples, vous pouvez utiliser un bon système de controll version comme git et utiliser submodules. Avec cette approche, vous aurez un référentiel séparé pour les fichiers communs. Cela vous donne l'inconvénient de ralentir la vitesse de la page et un peu de frais généraux avec la mise à jour des sous-modules.

Comme dernière solution, vous pouvez utiliser un symbolic link sur le système de fichiers pour relier le dossier commun aux différents autres projets.

1

Voici ce que Saki m'a dit sur le Sencha Forums:

Les multiples applications sur une seule page, ou sous-applications de poste MVC ne sont pas encore pris en charge, cependant, les développeurs travaillent sur cette fonctionnalité , AUTANT QUE JE SACHE. Une telle mise en œuvre résoudrait vraisemblablement également le problème de la réutilisation des modèles, des vues et des contrôleurs parmi les applications (sous) , j'espère.

Plus précisément en ce qui concerne les applications reliant plusieurs:

Je voudrais simplement les fichiers soft-link de composants MVC est ce cas. aucune connexion logique ou fonctionnelle entre eux maintenant, seulement je veux réutiliser fichier déjà écrit, non?

+0

Donc, c'est exactement ce que j'ai suggéré comme dernière option: Utilisez un lien symbolique. – Netzpirat

Questions connexes