完全取决于您的需求和偏好.如果你有设计师而不是程序员需要添加Dojo小部件,那么他们最好使用声明性标记.但是,如果您坚持HTML标记通过w3c验证,那么您将需要使用编程方法.
我更喜欢程序化方法,因为它允许我将整个表单包装为javascript对象并创建实例化和验证其小部件的方法.评论后的附录: 我通常会创建一个javascript对象,其表单输入和dojo/dijit小部件作为其属性,因此我可以将它们称为this.startDateTextBox, this.titleInlineEditor等等.我在javascript对象构造函数中处理dojo小部件的实例化.
如果您使用多个类似的小部件,如果您声明保存其初始化设置的对象并以编程方式加载它们而不是以声明方式声明每个标记中的所有共享属性,则可以节省输入错误.我更喜欢程序化实例化的另一个原因是我可以在实际启动小部件之前更容易地根据不同条件更改实例化参数,而不是在服务器端更改标记.
从版本1.6开始,Dojo支持HTML5数据属性,因此生成的HTML将是有效的.尽管性能下降,但声明性方法允许一目了然地看到UI的结构.
我复制了他们在HTML5数据属性支持公告中提供的样式之间的比较:
即使在利用新的HTML5有效自定义属性时,在HTML中而不是使用JavaScript声明小部件仍然有利有弊.从HTML中声明JavaScript组件引入了语义上的杂质,因为HTML不再是纯粹的语义标记,而是包含与特定可视组件的紧密耦合.声明性方法还会产生额外的CPU周期,因为dojo.parse()必须遍历DOM树以查找具有Dojo自定义属性的元素.程序化实例化避免了不必要的循环并保留了HTML的语义纯度.但是,基于标记的小部件声明仍然具有强大的优势,允许我们在一个位置定义和创建小部件,从而以最小的工作量促进快速的应用程序开发.
| 归档时间: |
|
| 查看次数: |
2442 次 |
| 最近记录: |