New Features of ZK 3.6.2 TW
Timothy Clare, Technology Evangelist, Potix Corporation
June 22, 2009
3.6.2
ZK 最新版本3.6.2 主要重點為效能的提升,您將在各家瀏覽器直接感受到其中的差異,尤其IE6 瀏覽器最為明顯。 除了在效能方面的進步之外, 相信您也能在此最新版本發現我們新增了許多強大的功能, 同時也修正了48個以上的臭蟲。 現在就跟著我們一起來看3.6.2 新增了哪些功能吧!
效能改善
效能
在最新版本裡,我們的效能已有大幅的提升和進步,其中最明顯的即是應用程式在瀏覽器IE6上運行的速度!我們在tabbox 裡測試了約430 個控制項
以下圖表即為測試結果:
首先,你會在圖表上注意到,ZK 3.6.2 在所有的測試中都有極為突出的表現!
當執行操作系統模式初始化時,ZK 3.6.2 的速度為3.6.1 的三倍。另外,在初始化預設模式時, ZK 3.6.2 的速度也比 3.6.1 快整整兩倍。
不僅如此,在標籤轉換測試中,我們也能在操作系統按鈕模式看到顯著的效能增益: ZK 3.6.2 的速度為3.6.1的兩倍。而ZK 3.6.2 的預設按鈕模式在轉換標籤時,效能也遠超過ZK3.6.1。
由測試結果來看,如果您開發的是一個非常需要高效能的應用程式時,我們將建議你使用系統按鈕模式,因為這帶來的效能增益將遠遠超過預設模式。 測試用控制項完整列表如下:
MenuBar * 1 Menu * 12 |
Vbox * 2 Grid * 2 |
Include模式
當我們在ZUL檔案裡使用include元件時,常會出現一些問題,問題通常發生在元件出現之前,我們無法介入元件的生命周期。 而這個問題在ZK 3.6.2以後的版本將不再出現。關鍵在於我們應用了新的模式:include模式。目前共有三種include模式:延遲、即時和自動模式。而3.6.2之前版本中的include 標籤行為和目前的預設模式是相同的,皆為延遲模式。
Instant 模式
因為使用了Execution.createComponent功能,Instant模式能立即產生頁面,也就是說,因為下了初始化命令,他們可以直接與用戶連結,因此並不會有任何混亂或問題產生。 以下程式將為您示範如何設定Instant 模式:
<window title="demo" border="normal">
<include mode="instant" src="include.zul" />
</window>
Auto 模式
Auto模式將會挑選最適合inclusion type的模式列入類型。如果inclusion是ZUL檔,即時模式將自動被設定為最合適模式,反之,則為延遲模式。 下面的程式將為您示範如何完成自動模式設定:
<window title="demo" border="normal">
<include mode="auto" src="include.zul" />
</window>
將Auto 模式設為預設值
我們建議您在使用include元件時使用自動模式,同時也將自動模式設為預設值。只要將字元集變數加到您的zk.xml設定檔,即可完成。
以下的XML將示範如何完成這項設定:
<library-property>
<name>org.zkoss.zul.include.mode</name>
<value>auto</value>
</library-property>
新功能介紹
指令碼標籤
有些時候,你會需要include 一些JavaScript程式,但希望它是被放在head 標籤裡。我們現已在此版本引入了新的指令標籤,這將讓您能更有效率地使用該指令的指令元件。
<?script type="text/javascript" src="/a/b.js"?>
支援Google App Engine
ZK 3.6.2現已支援Google App Engine,讓您能輕鬆地在Google雲端上運行ZK應用程式!如欲了解更多詳細的安裝程序,請參閱我們的 操作方法。
指令初始化
使用者現在將能給予初始化指令更有意義參數名字,而不再只是arg0或arg1,而這也將提供開發者一個更全方面的開發環境。
<?init class="foo.Foo" some="a value" some2="another value"?>
屬性文件的位置配置
ZK 3.6.2現在提供了一個更加方便和靈活的方式,讓使用者能從已知位置來下載i18n property檔案。透過使用library屬性設定,開發者將能夠改變組織文件夾的結構。
<library-property>
<name>org.zkoss.util.label.web.location</name>
<value>/WEB-INF/i3-label.properties</value>
</library-property>
Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License. |