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客户端性能优化】 Dojo是一个强大的JavaScript工具包,旨在加速Web应用程序的开发,尤其在处理复杂的交互和动态功能时。为了优化DOJO客户端的性能,以下是一些关键策略: 1. **编译合适的dojo文件**:由于...
8. **性能优化**:Dojo Grid通过虚拟滚动技术优化大规模数据的渲染,即使在处理成千上万条记录时也能保持流畅的用户体验。 9. **键盘导航**:Grid提供完整的键盘导航支持,使得用户可以通过键盘操作表格,提升无...
- 了解并运用Dojo提供的各种性能优化工具和技术。 4. **国际化与可访问性**:介绍了如何使Dojo应用程序支持多语言环境,并符合无障碍标准。 - 如何使用Dojo的i18n/nls机制进行国际化。 - 实现符合WAI-ARIA标准的...
Dojo 1.9包含了众多改进和优化,比如性能提升、模块化改进、新API的引入等。在这个"dojo 1.9 demo"中,我们可以看到各种功能的实例,帮助我们更好地理解Dojo的核心特性和使用方法。 1. **模块化系统**:Dojo 1.9...
7. **性能优化**:理解如何利用Dojo的优化工具如build系统来压缩、合并和预编译代码,以提升应用程序的加载速度和运行效率。 通过这个教程,你不仅能够提升在Dojo和ExtJS上的技能,还能学习到如何将不同框架融合,...
最后,可能会讨论Dojo的测试工具和性能优化策略,确保应用程序的质量和效率。 参考书目通常会提供额外的学习资源,包括相关领域的经典著作、在线文档和社区资源,以供读者进一步探索Dojo和其他相关技术。 通过阅读...
Dojo是一个全面的JavaScript框架,包括丰富的UI组件、数据存储、AJAX交互、国际化支持和性能优化工具。它的设计目标是提供一个统一的、高效的开发环境,适用于构建复杂的富互联网应用程序(RIA)。 2. **模块化...
标题中的“dojo1.8工具包”指的是Dojo框架的1.8版本,这是一个重要的版本,因为它包含了众多优化和改进,以提升性能和用户体验。 Dojo 1.8主要知识点包括: 1. **模块化系统**:Dojo 1.8采用了AMD(Asynchronous ...
10. **性能优化**:了解如何通过缓存、合并JS/CSS、减少Ajax请求等方式优化Struts2+Dojo应用的性能。 以上就是关于"struts2+dojo程序"的相关知识点,通过深入理解和实践这些内容,开发者可以构建出高效、易维护的...
5. **性能优化**:讨论如何针对Dojo应用程序进行性能调优。 总之,Dojo Toolkit是一个功能强大且易于使用的Web开发框架,它不仅提供了丰富的功能库,还拥有活跃的开发者社区作为支持,非常适合用于构建现代化的Web...
Dojo Mobile适合于创建轻量级且高性能的移动Web应用,它封装了许多常用的UI控件,这些控件针对移动设备进行了优化,能够提供良好的触摸体验,并且具有较高的响应速度。 开发者在使用Dojo Mobile进行开发时,会遇到...
2. **客户端验证**:第二章可能详细讲解如何使用Dojo实现客户端的数据验证,包括表单元素的验证、自定义验证规则和错误处理。Dojo提供了许多内置的验证控件,如`dijit.form.ValidationTextBox`,以及可以方便地扩展...
【基于ArcGIS API for JavaScript的电梯标注展示与性能优化探讨】 在现代城市中,电梯作为重要的垂直交通工具,其安全管理及信息系统的建设至关重要。电梯地理信息系统(GIS)是整合电梯数据和地理位置信息的重要...
此外,合理的生命周期管理和组件实例化策略能够有效地优化应用性能和可维护性。 总的来说,Dojo的生命周期机制和组件管理是其强大功能的重要组成部分。通过理解并熟练掌握这些概念,开发者可以更好地利用Dojo创建...
- **优化性能**:了解如何利用Dojo的模块加载策略和资源管理功能,优化Web应用的加载时间和运行效率。 - **测试与调试**:学会使用Dojo的测试框架,确保代码的质量和稳定性。 ### 结论 《从零开始学Dojo》是一本...
Dojo Toolkit是这个库的核心,它是一个完整的前端开发框架,旨在帮助开发者创建交互性强、高性能的Web应用。在0.4.1版本中,它包含了对AJAX技术的优化和一系列相关工具,以简化Web开发流程。 1. **AJAX**:AJAX是一...
【标题】:“征服DOJO源码”意味着我们将深入探索DOJO JavaScript库的...通过深入学习和实践这些知识点,你将能够“征服”DOJO源码,从而成为一位熟练的DOJO开发者,能够灵活运用DOJO库来构建高性能、可维护的Web应用。
1. **性能优化**:使用 dojo.store 和 dojo/data API 可以缓存数据,减少对服务器的频繁请求。 2. **国际化**:Dojo 提供 i18n 支持,可以轻松实现应用的多语言切换。 3. **自定义组件**:若标准 Dojo 控件无法满足...
同时,注意性能优化,避免一次性加载大量数据,利用Dojo的异步加载机制。 最后,`Learn`和`Libs`两个文件夹可能分别包含了示例代码和Dojo库的文件。学习这些代码可以帮助更好地理解上述知识点,并在自己的项目中...