天天看點

Dojo的壓縮

使用Dojo開發了頁面的全部互動代碼,寫完之後發現性能問題挺大。Dojo本身的代碼規模倒不大,最大的問題是dojo的module機制把代碼分散在大量的小碎javaScript檔案裡,一個頁面裝載的時候就壓幾十個請求到server上,頁面裝載時間非常慢。

本來準備換成jQuery的,昨天晚上試了一下,使用Dojo需要20多秒來裝載的頁面,換成jQuery以後1秒就成了。但是換架構這事還是一個比較大的架構考量,意味着對我的所有jsp頁面要做重構。

早晨和李蛟一同上班,談到了這個問題,他介紹了Dojo build系統給我,回來趕快試了一下,發現正好是我所需要的。列印了這篇文檔下來:

http://dojotoolkit.org/documentation/tutorials/1.7/build/

首先要說一下Dojo 1.7的新的module模型。假定如下一個簡單的HTML項目結構:

/

  index.html

  js/

    lib/

      dojo/

      dijit/

      dojox/

    my/

    util/

我們在HTML裡先把dojo.js裝載進來:

<script data-dojo-config="async: true" src="js/lib/dojo/dojo.js"></script>
           

下一步通過dojoConfig告訴幾個dojo module的位置:

var dojoConfig = {
    baseUrl: "/js/",
    tlmSiblingOfDojo: false,
    packages: [
        { name: "dojo", location: "lib/dojo" },
        { name: "dijit", location: "lib/dijit" },
        { name: "dojox", location: "lib/dojox" },
        { name: "my", location: "my", main: "app" }
    ]
};