最新消息:历时半年,永住昨天下来了

Dojo自定义编译

最近做一项目使用Dojo,但发现页面加载速度很慢。用Chrome一看,发现JavaScript的加载就花了近4秒钟。原因是加载的文件有近200个。在网上查了一下资料,可以自己编译Dojo,把自己需要的文件合并到一个文件中,减少JavaScript文件的加载个数。

大体步骤如:先到Dojo网站下载原代码,然后编辑编译文件,然后编译文件即可。

1.下载地址
http://dojotoolkit.org/download/

下载Source部分的文件(Dojo Toolkit SDK )。

2.把下载的文件解压到目录,在解压目录下的\util\build\scripts\profiles添加一个JS配置文件,如xxx.profile.js。修改xxx.profile.js的内容,根据自己使用的功能添加应用。比如我的内容为:

JavaScript
dependencies = {
    action:"clean,release",
    stripConsole: "normal",
    selectorEngine:"acme",
    optimizeCss: "Flattens",

    layers: [
        {
            name: "dojo.js",
            dependencies: [
                "dojo.parser",
                "dojo.loadInit",
                "dojo.text",
                "dojo.i18n",
                "dojo.date.stamp",
                "dojo.data.ItemFileWriteStore",
                "dojo.data.ItemFileReadStore",
                "dojo.data.util.filter",
                "dojo.data.util.simpleFetch",
                "dojo.data.util.sorter",
                "dojo.date.locale",
                "dojo.date",
                "dojo.cldr.supplemental",
                "dojo.regexp",
                "dojo.string",
                "dojo.fx",
                "dojo.fx.Toggler",
                "dojo.cookie",
                "dojo.dnd.AutoSource",
                "dojo.dnd.Target",
            ]
        },
        {
            name: "../dijit/dijit-xxx.js",
            dependencies: [
                "dijit.main",
                "dijit.dijit",
                "dijit.MenuItem",
                "dijit.PopupMenuItem",
                "dijit.MenuSeparator",
                "dijit.TooltipDialog",
                "dijit.form.Form",
                "dijit.form.MultiSelect",
                "dijit.form.FilteringSelect",
                "dijit.form.Textarea",
                "dijit.form.CheckBox",
                "dijit.form.ComboButton",
                "dijit.form.RadioButton",
                "dijit.layout.AccordionPane",
                "dijit.layout.TabController",
                "dijit.layout.TabContainer",

                "dojox.main",
                "dojox.form.Uploader",
                "dojox.form.uploader.Base",

                "dojox.validate",
                "dojox.validate.regexp",
                "dojox.validate.web",
                "dojox.grid.EnhancedGrid",
                "dojox.grid.DataGrid",
                "dojox.grid.enhanced.plugins.Pagination",
                "dojox.grid.enhanced.plugins.Dialog",
                "dojox.grid.enhanced.plugins.IndirectSelection",
                "dojox.grid.cells.dijit",
                "dojox.json.ref",
            ]
        }
    ],

    prefixes: [
        [ "dijit", "../dijit" ],
        [ "dojox", "../dojox" ]
    ]
}

3.启动CMD,进入解压目录下的utilbuildscripts目录,用以下命令进行编译。

build action=release profile=xxx optimize=shrinksafe releaseName=standard

4.把编译好的代码引入系统就行。如果用上面的命令编译,生成的代码应该在解压目录下的releasestandard目录。在程序中引入dojodojo.js和dijitdijit-xxx.js就行。语言文件在nls目录下。可以通过设置djConfig的值来引入,如下代码:

JavaScript
var djConfig = {
    locale: "zh-cn"
};

转载请注明:宇托的狗窝 » Dojo自定义编译

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)