Google網頁工具包

Google Web Toolkit(簡稱GWT,讀作/ˈɡwɪt/),是一個前端使用JavaScript,後端使用JavaAJAX framework,以Apache許可證2.0版本開放源始碼。GWT透過編譯器將Java程式碼編譯成JavaScript,可讓開發人員使用Java程式設計語言,快速建置與維護複雜但高效能的JavaScript前端應用程式,藉此減輕開發人員負擔。

Google Web Toolkit
原作者Google
首次發布May 16, 2006
當前版本2.10.0(2022年6月9日,​2年前​(2022-06-09
源代碼庫 編輯維基數據鏈接
編程語言Java
操作系統GNU/Linux, Windows, Mac OS X
語言Java
類型AJAX framework
許可協議Apache許可證 2.0
網站http://www.gwtproject.org/

2010年8月,Google買下Instantiations公司[1],並免費釋出該公司旗下所有產品,當中包括GWT Designer。GWT Designer是Eclipse的插件,為GWT提供WYSIWYG所見即所得)的AJAX設計介面[2]。Google亦正在計劃為GWT Designer增加UiBinder支援。

2014年10月30日,在GWT 2.7.0 RC1版本中,GWT Designer已棄用。[3]

2016年10月20日,GWT 2.8.0 版本正式發布。該版本支持Java 8和CSS3。同時正式支持JsInterop和GSS,前者可替換原先的JSNI,後者取代過時的CssResource。[4]

組件

Google Web Toolkit的主要組件包括:

GWT Developer Plugin
提供GWT開發模式(GWT Development Mode),將Java代碼的執行結果即時反映到本機瀏覽器上,整個過程完全不需進行編譯。在此模式下,對Java代碼進行除錯,就像直接對JavaScript進行除錯一樣迅速。
GWT Web UI class library
一套用於建立控件的自定介面與函式庫
GWT Java-to-JavaScript Compiler
將Java代碼編譯成JavaScript代碼的編譯器,編譯方式有三種:[5]
  1. Obfuscated:此乃預設模式。此模式將JavaScript進行代碼混淆,例如全不跳行、全刪空格、所有代碼擠在一行、變數名稱只用一兩個字母等等。讓代碼難以閱讀,減少泄露運作邏輯及被攻擊的機會,並提高網絡傳送速度。
  2. Pretty:此模式的JavaScript代碼經過美化,例如盡量使用有意義的變數名稱,適當地跳行,易於閱讀。此模式適合在編譯後繼續對JavaScript代碼手動進行修改。
  3. Detailed:介乎以上兩種模式之間。

歷史

版本歷史:

  • GWT 1.0 2006年5月17日
  • GWT 1.1 2006年8月11日
  • GWT 1.2 2006年11月16日
  • GWT 1.3 2007年2月5日
  • GWT 1.4 2007年8月28日
  • GWT 1.5 2008年8月27日
  • GWT 1.6 2009年4月7日
  • GWT 1.7 2009年7月13日
  • GWT 2.0 2009年12月8日
  • GWT 2.1.0 2010年10月19日
  • GWT 2.2.0 2011年2月11日
  • GWT 2.3.0 2011年5月3日
  • GWT 2.4.0 2011年9月8日
  • GWT 2.5.0 2012年10月
  • GWT 2.5.1 2013年3月11日
  • GWT 2.6.0 2014年1月30日
  • GWT 2.6.1 2014年5月10日
  • GWT 2.7.0 2014年11月20日
  • GWT 2.8.0 2016年10月20日
  • GWT 2.8.1 2017年4月24日
  • GWT 2.8.2 2017年10月19日
  • GWT 2.9.0 2020年5月2日
  • GWT 2.10.0 2022年6月9日

參見

外部連結

參考文獻

  1. ^ Google Relaunches Instantiations Developer Tools - Now Available for Free. [2010-11-13]. (原始內容存檔於2016-05-08). 
  2. ^ GWT Designer User Guide. [2010-11-13]. (原始內容存檔於2012-02-25). 
  3. ^ Release Notes for 2.7.0. [2016-10-25]. (原始內容存檔於2021-01-16). 
  4. ^ Release Notes for 2.8.0. [2016-10-25]. (原始內容存檔於2021-01-16). 
  5. ^ Debug and Compile - FAQ. [2010-11-13]. (原始內容存檔於2011-12-20).