我想開發一個GWT應用程序。該應用程序包含8個模塊,所有模塊都在一個頁面中運行。GWT懶惰加載
我有鏈接頂部的所有7個選項。
當頁面加載時,我只想要加載和顯示家庭內容。
只有當用戶點擊菜單選項時,纔會加載菜單內容。
任何人都可以提出實現這一目標的最佳方法。
我想開發一個GWT應用程序。該應用程序包含8個模塊,所有模塊都在一個頁面中運行。GWT懶惰加載
我有鏈接頂部的所有7個選項。
當頁面加載時,我只想要加載和顯示家庭內容。
只有當用戶點擊菜單選項時,纔會加載菜單內容。
任何人都可以提出實現這一目標的最佳方法。
AFAIK,懶惰加載(或可插拔)模塊不能在GWT中完成。部分原因是由於GWT編譯器的工作方式 - 它喜歡導入它將要看到的所有代碼,然後儘可能惡化地優化和修剪它(使得生成的JS文件儘可能小並且領先) 。如果預先無法訪問所有源代碼,則可能會進行優化,從而中斷可插拔模塊(尤其是因爲「核心」應用程序中沒有任何內容可以引用延遲加載模塊需要正常工作的類 - GWT編譯器會修剪核心模塊中的那些「未使用」的類)。
這個stackoverflow question from May 09問同樣的事情,並有相同的答案 - 它不能完成。
我大概在六個月前搜索了高和低的答案來解決這個問題,因爲我真的想做我相信你所要求的。從未找到解決方案。
(我沒有使用GWT 2.0 - 它可能已經解決了這個問題)
GWT已經解決了這個問題。 – Carnell 2009-12-20 16:35:18
這在GWT 2.0得到解決......首先你會刪除你必須爲每個模塊獨立的入口點 - 因爲他們都在同一頁面上,每個頁面只需要一個入口點。
然後,您可以在每個感覺可以是分裂的點上使用GWT.runAsync()方法......它會自動將代碼分割爲在必要時下載的塊。
查看here的文檔。
雖然在編譯方面呢?你是否還想在任何時候想要對「插件」模塊進行更改時編譯所有內容?代碼分割指南在這方面似乎沒有特別清楚。 – Ash 2009-12-20 21:52:02
GWT 2.0還附帶了一個非常有趣的開發模式,可以消除頭痛(或者完全隱藏它)。您運行該應用程序,安裝瀏覽器插件,並進行更改並點擊刷新。這就是它 - http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html#NewFeaturesDevMode – 2009-12-21 16:54:06
謝謝你的回答。你說得對,整個Javascript代碼都被下載了。
但是,必須有一個像模塊說的方式是查看配置文件。只有當用戶點擊視圖配置文件鏈接時,才需要創建與顯示我的配置文件相關的小部件。這是不可能的。
它很容易成爲可能......我附加了文檔的鏈接。關於這個話題還有很多關於Google I/O的討論 – 2010-06-18 05:34:00
如果你還沒有找到答案,它可能會幫助,如果你更具體的問題...否則做你的問題標記爲答案。 – 2010-01-26 06:08:26