2012-03-13 26 views
4

GWT應用程序的編譯JavaScript的輸出分爲各種文件,例如部署GWT應用程序作爲一個JavaScript文件

  • * .cache.html
  • * .gwt.rpc
  • 主持。 HTML
  • * .nocache.js

...

我知道這是爲了最大限度地減少JavaScript的大小,它必須由用戶下載。例如,以便Firefox用戶不必加載專門爲IE6編譯的JavaScript。

但是,特別是對於小型GWT應用程序,下載500kb單個文件通常會更快,而不是先爲5kb * .nocache.js腳本創建兩個連續請求,然後再爲應用程序的其餘部分(緩存.html文件等)。

這引出了我的問題:是否有任何框架或過程將GWT編譯器的輸出綁定到單個JavaScript文件

回答

4

首先,您可以使用所謂的"soft permutations"將所有排列合併到單個文件中。

然後,您可以內聯的* .nocache.js到HTML主頁(例如,使用JSP的@include指令)削減一個額外的請求(您可能需要添加一個<meta name=gwt:property content='baseUrl=myapp'>其中myapp是子文件夾,其中。 nocache。文件位於)。
AFAIK這是谷歌正在爲他們的GWT應用程序做的。

或者,您可以在服務器端運行排列選擇如果您可以完全替換選擇腳本(* .nocache.js)與服務器端內容協商(基於用戶代理和接受語言請求標頭),可以直接爲相應的* .cache.js文件生成<script>標記(只要您使用xsiframe鏈接器即可)。

AFAIK,Google將所有這些技術用於他們的GWT應用程序(例如Google Groups)。對於一個小的應用程序,不過,我不知道它的價值的努力...
此外,近兩年技術最好的工作時,你的HTML主頁已經是動態的,因此已經無緩存;否則你主要是在移動問題,而不是解決問題。

我不知道是否當你崩潰的所有屬性和軟置換到一個單一的硬排列的sso接頭可以使用。

+0

謝謝!軟排列是我失蹤的一塊。 GWT編譯器真的非常靈活! – mxro 2012-03-14 04:03:01

+0

sso鏈接器現在支持軟排列[changeset 10938](http://code.google.com/p/google-web-toolkit/source/detail?r=10938) – Chris 2012-04-12 09:29:26

相關問題