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 引入之前:
<script>
djConfig = { parseWidgets: false, searchIds: [] };
</script>
那么如果需要解析一部分widget怎么办呢? 下面的方法可以指定需要解析那些widget。只需要将需要解析的widget的id放到searchIds:
<script type="text/javascript">
djConfig = { parseWidgets: false, searchIds: ["info", "confirmation"] };
</script>
<script type="text/javascript" xsrc="dojo.js"></script>
...
<div dojoType="dialog" id="confirmation">...</div>
...
<div dojoType="dialog" id="info">...</div>
...
<input dojoType="dropdowndatepicker" value="2007-01-31" id="from_date">
<script>djConfig.searchIds.push("from_date");</script>
...
上面的代码一共解析了3个dojo widget,其中前两个直接放到searchIds ,而第三个则动态的加入到searchIds。
如果你不喜欢searchIds 的方式, 还有一种方式提供选择,给控件加上parseWidgets='false'属性:
<div parseWidgets="false">
Dojo widget parser 将不会运行到这里,因为我们已经告诉他忽略这里。
...
</div>
通过上面的方式,相信 你的dojo性能能够得到显著的提升,如果仍然达不到性能要求,那么可能你只能放弃dojo,或者让客户进行机器的升级了。
分享到:
相关推荐
Dojo 客户端调优的方式: 1. 编译合适的dojo文件。 dojo十分“巨大”, 而且有很多文件是最终用户不需要使用的。 默认情况下的dojo.js 比较大,有200多k,但是如果自定义进行编译之后可能只有10多k。 而且将...
dojo的开发分为编程方法和标签中添加dojo属性两种方法。本文主要介绍了如何进行编程方式的开发。
dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程
一、 Dojo学习笔记(1. 模块与包) 1 二、 Dojo学习笔记(2. djConfig解说) 4 三、 Dojo学习笔记(3. Dojo的基础对象和方法) 6 四、 Dojo学习笔记(4. dojo.string & dojo.lang) 9 五、 Dojo学习笔记(5. dojo.lang.array ...
Dojo是一个非常强大的、面向对象的、开源的JavaScript工具箱,它为开发富客户端Ajax应用提供了一套完整的小部件和一些特效操作。曾经有人这样说:“对于一个Web开发者而言,如果没有Dojo,他将是一个“残废”的...
dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档
很不错的中文教程!文件太大分3个包! 目录如下: dojo精品中文教程 Dojo.1.0 Practice Note [1] ...使用 Dojo 工具包和 JSON-RPC 构建企业 SOA Ajax 客户端 利用Dojo实现拖动(Drag and Drop)效果
分三个包上传时,第三个包好像传不上去,我给整合了一下,打在一个包里上传了! dojo精品中文教程 ...使用 Dojo 工具包和 JSON-RPC 构建企业 SOA Ajax 客户端 利用Dojo实现拖动(Drag and Drop)效果
很不错的中文教程!文件太大分3个包! 目录如下: dojo精品中文教程 Dojo.1.0 Practice Note [1] ...使用 Dojo 工具包和 JSON-RPC 构建企业 SOA Ajax 客户端 利用Dojo实现拖动(Drag and Drop)效果
dojo js dojo js dojo js dojo js dojo js dojo js dojo js
Dojo 是目前最流行的开源 JavaScript 工具库之一,很多开发者以及企业用户都把Dojo 作为首选的 JavaScript ...而且 Dojo 在性能、可访问性、多语言支持以及文档方面都做的非常出色,这也是企业选择 Dojo 的原因之一。
20210820-中信证券-科技先锋系列报告226:特斯拉AI日,自动驾驶,Dojo高性能计算,人形机器人.rar
DOJO中文手册【出自dojo中国】 页数60+ 简单介绍: Dojo 是一个用javascript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)), 这也是为什么叫它a \"unified\" toolkit的...
【2021】科技先锋系列报告226:特斯拉AI日,自动驾驶,Dojo高性能计算,人形机器人0820-中信证券_27页.pdf
dojo.js.核心jsDojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库
学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源...
dojo中文文档下载。dojo中文文档下载。
dojo资料dojo资料dojo资料dojo资料dojo资料
而基于Dojo的Web2.0应用经常需要下载大量Dojo代码到客户端执行,而且会不时的向后台发起IO请求,响应速度受到很大影响。本文通过演示一些实用的技巧来提高Dojo的性能,帮助开发人员找出Web2.0应用程序的性能瓶颈。...