阅读教程

Dojo 性能优化(客户端)

[日期:2008-06-07] 来源:  作者:志伟

Dojo 性能优化(客户端)


Dojo 客户端调优的方式:

1. 编译合适的dojo文件。

dojo十分“巨大”, 而且有很多文件是最终用户不需要使用的。

默认情况下的dojo.js 比较大,有200多k,但是如果自定义进行编译之后可能只有10多k。

而且将常用的模块编译到dojo.js 也能提高效率。

dojo的加载顺序如下:

  1). 浏览器加载dojo.js

    dojo bootstrp code

    dojo loader

    (optionally) frequently used modules

 

  2). dojo.js 激活Dojo对象, 动态的载入其他的module,如果模块已经载入,那么将不会再一次重新载入。

 

dojo 提供了一系列典型的编译方案可以选择。

dojo 的编译可以减少文件的下载数目,可以使文件大小显著的减少。

 

2. 减少widget的使用。

  每加载一个dojo 的widget都需要额外的时间,所以当然使用越少dojo控件,速度就越快。

 

3. 使用新版本的dojo,建议1.0以上。

  新版本对性能进行了优化,减少了bug,所以尽量选用新的稳定版本。

 

4. 减少html tag,每增加一个tag,性能的负担就越重,比如

  使用<table><tr><td>xxxxxxx</td></tr></table>

就不如用<div>xxxxxxx</div>

 

5. 优化widget的加载 

 dojo在页面加载的时候将分析整个HTML文件,自动加载指定的内容为dojo控件。即使你没有定义任何dojo控件。所以优化widget的控件能够显著的提升一个页面加载的性能。

如果页面载入花费的时间比较多,你觉得不正常,可以用Firebug 看看是不是页面载入的时候花费很多时间在dj_load_init() 或者 modulesLoaded() 这些地方,这些都是明显的信号表明我们需要留意widget的加载问题。

 

dojo提供了多种方式来控制widget的加载。其中最重要的就是它提供了跳过所有widget 解析的方法,只需要加入下面的代码到dojo.js 引入之前:

 

Js代码 复制代码
  1. <script>   
  2.   djConfig = { parseWidgets: false, searchIds: [] };   
  3. </script>  

 

那么如果需要解析一部分widget怎么办呢? 下面的方法可以指定需要解析那些widget。只需要将需要解析的widget的id放到searchIds:

 

Js代码 复制代码
  1. <script type="text/javascript">   
  2.   djConfig = { parseWidgets: false, searchIds: ["info""confirmation"] };   
  3. </script>   
  4. <script type="text/javascript" xsrc=../../"dojo.js"></script>   
  5. ...   
  6. <div dojoType="dialog" id="confirmation">...</div>   
  7. ...   
  8. <div dojoType="dialog" id="info">...</div>   
  9. ...   
  10. <input dojoType="dropdowndatepicker" value="2007-01-31" id="from_date">   
  11. <script>djConfig.searchIds.push("from_date");</script>    
  12.    
  13. ...  

 上面的代码一共解析了3个dojo widget,其中前两个直接放到searchIds ,而第三个则动态的加入到searchIds。

 

如果你不喜欢searchIds 的方式, 还有一种方式提供选择,给控件加上parseWidgets='false'属性:

 

Js代码 复制代码
  1. <div parseWidgets="false">   
  2.    Dojo widget parser 将不会运行到这里,因为我们已经告诉他忽略这里。   
  3.    ...   
  4. </div>   

 

 

通过上面的方式,相信 你的dojo性能能够得到显著的提升,如果仍然达不到性能要求,那么可能你只能放弃dojo,或者让客户进行机器的升级了。


      
      使用百度搜索:Dojo 性能优化(客户端)百度中搜索:Dojo 性能优化(客户端)
阅读:
录入:志伟

评论 】 【 推荐 】 【 打印
上一篇:
下一篇:
本文评论       全部评论
发表评论


点评: 字数
姓名:

 
搜一下


 
本周热门教程
 

关于我们 | 广告合作 | 法律声明 | 联系站长 | 网站地图 | 网站搜索 | | Top ↑
Copyright © 志伟教程资料网 Powered by zhiweinet 1.0
 本栏目提供:Dojo 性能优化(客户端)