WEB开发网
开发学院网页设计JavaScript Dojo 控件性能优化最佳实践 阅读

Dojo 控件性能优化最佳实践

 2010-03-09 00:00:00 来源:WEB开发网   
核心提示: 两种方式结合初始化 Dojo 控件当然有些情况下会有这种需求 , 既想拥有编程方式的灵活性,又想拥有声明方式的简单性,Dojo 控件性能优化最佳实践(5),比如我想自己来控制什么时候生成 dojo 控件,又不想自己写方法来进行参数值转换,在装载过程中在生成 Dojo 控件方面的性能消耗将微乎其微

两种方式结合初始化 Dojo 控件

当然有些情况下会有这种需求 , 既想拥有编程方式的灵活性,又想拥有声明方式的简单性,比如我想自己来控制什么时候生成 dojo 控件,又不想自己写方法来进行参数值转换,可通过如下方式来实现,

在 html 代码中不添加 dojoType 属性,在我们需要的时候,通过编程方式来指定 html 控件的 dojoType 属性值,然后通过调用 dojo.parser.instantiate() 方法,来解析 html 代码生成 dojo 控件,这样我们既能动态的控制 Dojo 控件的生成,又能利用 dojo.parser 的强大功能,对于上面提到的例子我们可采用如下代码实现 :

清单 4. 两种方式结合页面代码

 <script djConfig="parseOnLoad: true, isDebug: true, locale:'zh-cn'" 
 src="<%=Context%>/javascript/dojo/dojo.js" ></script> 
 <script type="text/javascript"> 
 dojo.require("dojo.parser"); 
 dojo.require("dijit.form.DateTextBox"); 
 
 function createDojo(inputId){ 
 var inputObj = dojo.byId(inputId); 
 inputObj.setAttribute("dojoType", "dijit.form.DateTextBox"); 
 dojo.parser.instantiate([inputObj]); 
 } 
 </script> 
 <body class="tundra"> 
 <input type="text" id="dojotext02" > 
 </body> 

其页面效果同前两种方式完全一样。通过这种方式,装载页面的时候,页面中的节点全部是基本的 HTML 元素,当其中的节点响应了预先定义的 onfocus() 事件之后,动态的去调用创建 Dojo 控件的方法,在这个过程中通过调用 dojo.parser() 方法来解析相应的 Dojo 控件。由此可见,使用这种方式在页面初始化的时候 HTML 代码与 Dojo 没有发生任何关系,在装载过程中在生成 Dojo 控件方面的性能消耗将微乎其微,只是加载到页面相应的 JavaScript 代码,这样可以大大提高页面装载的速度。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Dojo 控件 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接