2010-05-25 4 views
2

Je dois créer une application Web en utilisant GWT. Le projet a un module de base qui exposera un ensemble d'API à utiliser par d'autres applications; chacune de ces applications ne sont pas liées. Chacun doit être chargé dans un iframe séparé.gwt modules séparés sans partage de code

Mon idée était de compiler et noyau dans core.js chaque application a ses propres app1.js app2.js et ainsi de suite ...

App1

script type="text/javascript" src="core.js" ></script> 
script type="text/javascript" src="app1.js" ></script> 

avec cette conception, en raison Pour la mise en cache du navigateur, chaque application ne charge que l'application app.js qui devrait être plus petite ~ 20kb.

Faire un module de base est simple mais les applications sont problématiques. La raison étant après la compilation, chaque application contient la bibliothèque GWT entière - ceci augmente considérablement la taille de téléchargement de la webapp complète. Est-ce que quelqu'un peut suggérer un moyen de contourner ce problème? J'ai vérifié des questions similaires sur SO, mais je n'ai pas trouvé de réponse simple au problème.

+0

Aucune réponse? –

Répondre

4

Cela ne peut pas être fait. GWT est censé être une compilation monolithique. Il faudra tout votre code Java, supposons qu'aucun autre code existe autre que ce qui lui a été fourni, puis générer du code javascript optimisé. Ce faisant, il ne compilera que des parties de la bibliothèque GWT standard qui sont actuellement utilisées par votre programme.

En raison du fonctionnement de GWT, il sera toujours inefficace d'inclure plusieurs modules GWT sur une même page.

Au lieu de cela, voici ce que je vous recommande -

  1. Demandez un module GWT par application, et non une par page. Et mettre deux modules sur la même page n'est certainement pas correct
  2. Partager le code java entre les modules, pas javascript. Cela signifie que votre bibliothèque partagée ne sera jamais compilée en javascript.
+0

Hmm .. Cela exclut à peu près l'utilisation de gwt pour le projet alors. Même si je partage du code java, le noyau gwt lib doit toujours être inclus/compilé avec chaque application - ce qui est évidemment un gâchis. Merci pour les ans si –

Questions connexes