最近发现dojo页面每次请求的时候都会加载好几十个js文件,也就是要建立几十个request请求,这个是无法接受的,所以准备花点时间来研究下。但在网上找了下没发现什么好的例子,看来得花点时间才可能有点结果吧,由于今天下午花了点时间但是没看出什么结果来,又害怕以后不能坚持下去,所以把知道都记录下,希望以后来进行完善。
dojo有个专门压缩JS的工具叫shrinksafe,本人目前使用的版本为:
dojo-release-1.6.1-shrinksafe
对单个JS进行压缩可以这样:
引用
E:\myfile\dojo\shrinksafe>java -jar shrinksafe.jar -c 1768.js>17.js
其中1768.js是需要压缩的文件,17.js就是压缩后生成的文件名,这里有个地方需要注意下,那就是那个1768.js必须是独立可运行的,如果这个文件内部引用了其它文件,则运行压缩的时候会出错,因为它不能单独运行,所以shrinksafe不能判断是否压缩成功,所以会报错。
如果要压缩多个js并将其合并成一个js,也很简单:
引用
E:\myfile\dojo\shrinksafe>java -jar shrinksafe.jar 9676.js 1768.js>17.js
新版本的shrinksafe可以不加-c命令。
更新(12.8):但是要把dojo中引用到的JS打包起来就不那么容易了,本人差不多花了一天时间,到处查资料,得到的结果也不是太满意,先看一个命令:
引用
E:\myfile\dojo\dojo-release-1.6.0-src\util\buildscripts>java -classpath
"../shrinksafe/compiler.jar;../shrinksafe/js.jar" org.mozilla.javascript.tools.shell.Main build.js action=clean,release optimize=closure layerOptimize=closure profile=myprofile releaseName=hello
上面这个命令算是本人在windows上见过的比较长的命令了。有几点要注意:
1.必须在buildscripts下运行java,而且需要java6。
2.除了用到了shrinksafe下的js包以外,还用到了
http://code.google.com/closure/compiler/下的compiler.jar包。据说这个包压缩js很优秀。如果不加optimize=closure layerOptimize=closure这两个参数,会报错
引用
[JavaPackage org.dojotoolkit.shrinksafe.Compressor]. It is not a function, it is "object"
经过本人再三搜索,明白了一点,默认使用的是layerOptimize=shrinksafe这样的方式,如果改成layerOptimize=comments,还是可以运行的,而且不用再加compiler.jar包了,不过压缩出来的js比起使用compiler.jar压缩的js,相比压缩比要低一些。
3.profile文件。上面命令中有个profile=myprofile,其中这个myprofile必须位于buildscripts\profiles目录下,且后缀名为.profile.js。至于里面的内容,如下:
dependencies = {
layers: [
{
name: "dojo/mydojo.js",
dependencies: [
"dojo._base",
"dojo.parser",
"dojo.data.ItemFileReadStore",
"dojo.data.ItemFileWriteStore",
"dijit.Tree",
"dijit.layout.BorderContainer",
"dijit.layout.ContentPane",
"dijit.form.Form",
"dijit.form.TextBox",
"dijit.form.Textarea",
"dijit.form.Button"
]
}
]
}
这是本人原来写的一棵树所需要的dojo引用的文件。
4.生成的文件会在dojo-release-1.6.0-src\release\hello目录中,上面的releaseName=hello就是这个意思。
5.然后将dojo目录下的nls目录与mydojo.js复制到相应的web服务目录下,最后在相应的jsp中引用:
<script type="text/javascript" src="/spring3/js/dojo/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
<script type="text/javascript" src="/spring3/js/dojo/packer/mydojo.js"></script>
其中dojo.js还是得引用。还有就是css文件还是得照常引用,目前还不知道css文件是怎么打包的。
折腾了差不多一天,总算弄清了dojo的打包流程,说实话心里并没得啥子成就感,这种东西弄起来比在windows上配置ruby还麻烦。文章就先写到这里,以后如果有的感悟再来更新。
(10.9)关于css的压缩可以在命令行中加上cssOptimize=comments,这样的话,会把所有的css的注释去掉,然后打包成dijit.css,这个文件30K左右,压缩的效果还是不错的,至于可以压缩到原来的50%。然后在jsp中直接引用这个文件与dojo.css文件就可以了:
<link href="../css/tundra.css" rel="stylesheet" type="text/css" />
<link href="../css/dojo.css" rel="stylesheet" type="text/css" />
即便把js与css打包以后,控制台请求还是有36个,仔细看了下,树的数据加载采用XHR的形式,所以引用了dojo._base下的十几个js,这个目前还没想到什么解决方法,因为_base下的文件属于内部引用,本人在打包的时候就算把这些文件加入打包目录还是没有效果。
分享到:
相关推荐
该工具可按指定的方案合并、压缩dojo或符合dojo规范的js文件、压缩css文件。 使用方便,无需安装配置, 下载置入dojo源码下的任意目录即可一键完成打包压缩. 该工具可自动分析HTML文件生成打包方案,自动排除没有用到的...
### Dojo JavaScript 库的打包方法详解 #### 一、Dojo简介与打包的重要性 Dojo 是一个开源的 JavaScript 框架,主要用于构建高性能、跨平台的 Web 应用程序。它提供了一系列丰富的功能,如 AJAX 支持、DOM 操作、...
在引入 Dojo 的启动代码 `<script src="/yourpath/dojo.js"></script>` 之后,你可以开始使用 Dojo 提供的预打包的常用功能。为了便于阅读源码,可以查看未压缩的 `dojo.js.uncompressed.js` 文件。Dojo.js 的大小较...
10. **Dojo Build System**: Dojo的构建系统允许开发者优化和打包应用程序,去除未使用的代码,合并和压缩资源,以提升页面加载速度和降低服务器负担。 通过深入学习和实践这个DOJO API中文参考手册,开发者能够...
教程中还会涵盖Dojo的工具链,如build系统,用于优化、压缩和打包代码,提高页面加载速度。另外,Dojo的国际化和本地化支持也是其特色之一,使得应用程序能适应不同语言和地区的需求。 "dojo官方教程中文版 pdf 非...
这个"dojo-release-1.1.1.tar.gz"文件是Dojo库的一个特定版本,即1.1.1版,以tar.gz格式打包。这种格式是一种常见的Linux和Unix系统中的文件压缩方式,它结合了tar(归档)和gzip(压缩)两种工具,便于在Unix-like...
工具有关的标签可能指的是Dojo的构建工具,如`dojo-build`,它允许开发者优化和打包Dojo应用,减少网络传输的大小和提升页面加载速度。构建过程可以合并、压缩、混淆代码,同时处理模块依赖关系。 在学习Dojo时,...
5. **Dojo Build System**:Dojo构建系统用于优化和打包代码,通过合并、压缩、转换模块,减少HTTP请求,提高页面加载速度。同时,它还可以实现源码与发布版的分离,便于调试和部署。 6. **国际化的支持**:Dojo...
1. **dojo目录**:这是Dojo的核心库,包含了各种模块、组件和工具,如dojo.js,提供核心功能如事件处理、Ajax通信、DOM操作等。 2. **dijit目录**:这是一个UI组件库,包含各种可复用的界面元素,如按钮、表单、...
- 对Dojo进行压缩和打包,减少加载时间。 - 了解并运用Dojo提供的各种性能优化工具和技术。 4. **国际化与可访问性**:介绍了如何使Dojo应用程序支持多语言环境,并符合无障碍标准。 - 如何使用Dojo的i18n/nls...
9. **性能优化**:Dojo3内置了压缩和合并工具,可以将所有依赖的模块打包成一个或多个文件,减少HTTP请求,提升页面加载速度。 10. **浏览器兼容性**:Dojo3致力于提供良好的浏览器兼容性,支持包括IE6在内的多种...
`来加载一个包含"HelloDoJo"文本的模板文件,或者直接在JavaScript中定义字符串,然后将其插入到页面的某个元素中。 对于初学者来说,理解Dojo的模块系统(AMD,Asynchronous Module Definition)是非常重要的,...
10. **Dojo Build System**:这是一个强大的工具,用于优化和打包Dojo应用,包括合并、压缩和行内化CSS,减少HTTP请求,提高页面加载速度。 通过解压"dojo-release-1.8.2"压缩包,你可以获得Dojo的完整源码、文档、...
书中会讲解Dojo的优化技巧,如延迟加载(懒加载)、模块合并、压缩与打包等,帮助开发者提升应用程序的运行效率。Dojo的国际化和本地化支持也是其亮点,书里会介绍如何实现多语言环境下的应用。 Dojo还包含了强大的...
4. **util**:这个文件夹通常包含构建工具和其他辅助脚本,如 dojo-build,它是Dojo的构建系统,用于优化和打包Dojo应用程序,包括合并、压缩、混淆代码等,以减少网络传输时间和提高页面加载速度。 在实际开发中,...
"dojo-release-1.4.0.tar" 是Dojo框架的一个版本包,以tar格式进行压缩,这是一种常见的在Unix/Linux系统中打包和压缩文件的方法。 在Dojo 1.4.0版本中,我们可以找到以下几个核心知识点: 1. **模块化系统(AMD)...
1.7.2是dojo的一个特定版本,发布于某个时间点,可能包含了一些bug修复、新功能的添加或者性能的优化。 "jquery"是另一个非常流行的JavaScript库,它的目标是简化HTML文档遍历、事件处理、动画制作和Ajax交互。...
这个文件采用的是tar格式,是一种常见的文件打包和压缩工具,主要在类UNIX系统如Linux和Mac OS X中使用,但也可以通过各种工具在Windows上处理。 Dojo 1.3.0是Dojo Toolkit的一个历史版本,它包含了丰富的功能和...
Dojo提供了许多辅助工具,如loader(加载器)用于模块化代码,build system(构建系统)用于优化和打包应用,测试框架帮助确保代码质量。 【压缩包子文件的文件名称】:OReillyDojo.PDF 这个PDF文件很可能是一本...
Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,尤其在AJAX、DOM操作、事件处理、动画效果以及模块化开发等方面表现出色。标题中的"dojo1.2版本工具包"指的是Dojo框架的1.2版本的完整包,...