2013-02-13 116 views
2

zk框架对于web开发人员来说非常灵活。但灵活性也带来一些问题。不知该方法是最好的性能(存储器,时间等)zk框架:zul文件,纯Java或混合更好的性能

1).zul文件中,由脚本等:

<vbox> 
     Auto-complete Combobox: 
     <combobox id="combo" autodrop="true" mold="rounded"/> 
     <hbox> 
      <checkbox checked="true" 
       onCheck="combo.autodrop = self.checked" 
       label="auto drop popup when typing" /> 
      <checkbox checked="true" 
       onCheck="combo.buttonVisible = self.checked" label="button visible" />   
     </hbox> 
     <checkbox label="Use rounded combobox" checked="true" 
      onCheck='combo.mold=self.checked? "rounded": "default"'/> 
    </vbox> 
    <zscript> 
    String[] _dict = { 
     "abacus", "accuracy", "acuity", "adage", "afar", "after", "apple", 
     "bible", "bird", "bingle", "blog" 
... 

2)纯Java等

public class TestRenderer { 

    ListModelList model = new ListModelList(); 
    private AnnotateDataBinder binder; 

    @AfterCompose 
    public void afterCompose(@ContextParam(ContextType.VIEW) Component view) { 
     binder = new AnnotateDataBinder(view); 
    List persons = new ArrayList();  
    model.add(new Person("David", "Coverdale")); 
... 

3)混合zk

<window apply="com.synnex.wms.outbound.so.IndexViewCtrl"> 
    <style> 
     .z-row-cnt .z-label { 
      white-space:nowrap; 
     } 
    </style> 
    <grid model="${model}" rowRenderer="${renderer }" height="300px" width="800px"> 
     <custom-attributes org.zkoss.zul.grid.rod="true" /> 
     <custom-attributes org.zkoss.zul.grid.initRodSize="20" /> 
     <columns> 
      <column forEach="${headers}" label="${each}" width="80px"/> 
     </columns> 

    </grid> 


</window> 

它们在使用像春天这样的不同技术时会有所不同吗?是java到html解析比zul更快的HTML?

回答

1

还要注意的是EL表达式的计算是非常快的ARE,所以EL 可用于生产系统。另一方面,zscript是 建议仅用于原型或快速修复。
Link

所以不要用1)
2)可以更快,更慢或快3)取决于你的IMPL,
但要快可能会花费大量的时间和SO 2 )不是一个好主意。
3)通常是最好的,因为一个zul文件是更加readeable然后java代码
和GUI逻辑和GUI结构没有(那么多)混合起来。

要在MVC和MVVM之间进行选择,请阅读this
如果你觉得把它们混合起来是有道理的,那么框架应该是

1

我会建议你使用MVVM体系结构,它会促进你的发展,因为我在ZK MVC和MVVM上工作,我会更喜欢MVVM体系结构,你可以从这种方法中获得基于组件的最大好处,否则如果你的项目是复杂的,并使用MVC架构,都将增加你的头痛,但过一段时间,我们必须使用MVC方法也不过从我的理解最好的办法将是MVVM

1

来自ZK框架的人实际上推荐将服务器端与客户端分开。 他们说不要将Java代码和ZUL文件混合在一起,我可以从我自己的经验中谈谈,因为混合它们时出现性能问题,这是真的。

将zscript保持在最低限度,如果实际上不需要的话,请将其保留,并在服务器端处理您的编码。

这里其实很清楚入门教程http://books.zkoss.org/wiki/ZK_Getting_Started/Tutorial