2010-07-20 15 views
17

Sto entrando in Google Web Toolkit e sono un po 'confuso riguardo ai punti di ingresso in GWT. Documenti di Google dicono:Punti di ingresso multipli in GWT

Se si dispone di più entry point (l'interfaccia che definisce onModuleLoad()) all'interno di un modulo, saranno tutti chiamati in sequenza, non appena quel modulo (e il documento esterno) è pronto. Se si caricano più moduli GWT all'interno della stessa pagina, il punto di ingresso di ogni modulo verrà chiamato non appena sia il modulo sia il documento esterno sono pronti. Non è garantito che gli Entry Point di due moduli attivino contemporaneamente o nello stesso ordine in cui sono stati specificati gli script di selezione nella pagina host.

Così ogni pagina del sito Web ha bisogno di un punto di ingresso definito per questo?

Hai davvero bisogno di un punto di ingresso quando hai javascript generato in base alle tue classi Java?

Sei in grado di combinare più definizioni auto-generate-js in un unico file * .gwt.xml?

EDIT: Link alla fonte citata: http://code.google.com/webtoolkit/doc/1.6/DevGuideOrganizingProjects.html

Grazie!

risposta

10

Il modo più semplice per creare un'app GWT consiste nell'avere un'unica pagina per l'intera applicazione e un singolo livello superiore module (definito in .gwt.xml file). Ogni modulo ha una singola classe EntryPoint. Quindi tutte le diverse "pagine" sono sottosezioni della stessa pagina, idealmente utilizzando il meccanismo cronologico di GWT per tenere traccia delle modifiche di stato che in un'app Web non AJAX sarebbero nuove pagine. Quindi se imposti le cose in questo modo avrai bisogno di un EntryPoint per l'intera app.

Il bit dei documenti che hai citato (link?) Discute quello che penso sia un caso d'uso avanzato, in cui hai più di un modulo che stai caricando su una singola pagina.

+0

Interessante, posso vedere come funzionerebbe il punto in cui il menu di navigazione determina ciò che viene visualizzato nel pannello del contenuto principale (in un layout di pagina "standard"), ma se alcune pagine interrompono questo layout (cioè la pagina di accesso) hai bisogno di un punto di ingresso separato per tali pagine? – Adam

+0

Ok, quindi dopo aver pensato alla mia domanda di pagina Login, la seguente configurazione sembra avere un senso: - Pagina di accesso - L'utente inserisce i propri criteri OpenID, preme il form-submit, che richiama un servlet di autenticazione. In caso di autenticazione riuscita, indirizza l'utente verso l'EntryPoint dell'app (diciamo che è un Dashboard di qualche tipo); se l'autenticazione fallisce, il servlet restituisce un messaggio alla pagina di accesso per la visualizzazione. Immagino che questo abbia senso poiché non vorrai caricare il file js dell'app se non sei sicuro che l'utente possa autenticarsi. L'autenticazione stessa è piuttosto monodimensionale. – Adam

+1

Sarebbe un bel modo per farlo. Un altro modo è avere l'intera cosa, inclusa la pagina di accesso, essere parte della tua app GWT e utilizzare Code Splitting per garantire che venga caricata solo la funzionalità di accesso per iniziare (vedi http://code.google.com/webtoolkit/ doc/latest/DevGuideCodeSplitting.html) – aem

-1

c'è una possibilità, U può creare un progetto maven con sottoprogetti, significa che U può creare un punto di accesso multi,
ogni punto di ingresso ha il proprio html. See more details

+1

Potresti includere del contenuto della pagina a cui punta il tuo link? Ciò aggiungerà un po 'di contesto alla tua risposta e rimarrà ragionevole se il link potrebbe morire in futuro. –