ignar

Разводим Dojo Toolkit на максимальную производительность

In Dojo Toolkit, JavaScript on 25.06.2009 at 09:41

При написании небольшого приложения столкнулся с избыточным количеством подгружаемых скриптов, в основном dijit виджетов, что порядком сильно тормозит загрузку страницы.

Если Вы заходили на страницу загрузки, должны были заметить Dojo ShrinkSafe – утилиту для сжимания JavaScript кода – отличная штука, так же Dojo позволяет делать свои сборки фреймворка – указываете, что вам надо и Dojo Build собирает все с учетом зависимостей в один файл.

Почитать про Dojo Build можно в The Book of Dojo

Начнем по порядку, первое и самое важное, вам нужна полная версия фреймворка с утилитами, для этого вам нужен SVN.

Все приведенные примеры для linux систем. Сделать по аналогии под Windows не составит труда.

Итак, скачиваем фреймворк:

svn co http://svn.dojotoolkit.org/src/view/anon/all/trunk dojotoolkit

Далее создаем файл конфигурации с указанными нужными виджетами  и скриптами, у меня он вот такой:

dependencies ={
    layers:  [
        {
        name: "appdojo.js",
        dependencies: [
            "dojo.parser",
            "dojo.date",
            "dojo.cookie",
            "dojo.data.ItemFileWriteStore",
            "dojo.date.locale",
            "dijit.Menu",
            "dijit.Dialog",
            "dijit.form.Form",
            "dijit.form.TextBox",
            "dijit.form.Button",
            "dijit.form.CheckBox",
            "dijit.form.DateTextBox",
            "dijit.form.NumberTextBox",
            "dijit.TitlePane",
            "dijit._Calendar",
            "dijit.layout.TabContainer",
            "dijit.layout.ContentPane",
            "dijit._Widget",
            "dijit.TitlePane",
            "dojox.dtl._HtmlTemplated",
            "dojox.dtl.tag.logic",
            "dojox.form.BusyButton"
        ]
        }
    ],
    prefixes: [
        [ "dijit", "../dijit" ],
        [ "dojox", "../dojox" ]
    ]
};

Сохраняем его в /dojotoolkit/util/buildscripts/profiles и называем соответственно app.profile.js

Далее у вас должен быть установлен jkd, у кого нет – качаем JDK 6 Update отсюда

http://java.sun.com/javase/downloads/index.jsp

Заходим в дерикторию dojotoolkit/util/buildscripts и запускаем build.sh (я указывал все опции, но этого делать не обязательно):

./build.sh action=clean,release profile=app profileFile=/home/ignar/dojo/dojotoolkit/util/buildscripts/profiles/app.profile.js releaseDir=/home/ignar/dojo/dojotoolkit/release/ loader=default optimize=shrinksafe

Пользователям винды нужно запускать аналогичный .bat файл.

После этих, не хитрых операций появляется папочка dojotoolkit/release/dojo, где находиться наша сборка.

Как работает:

В dojotoolkit/release/dojo/dojo/ появился скрипт appdojo.js. Теперь вам не надо подключать ничего кроме dojo.js и appdojo.js (и конечно, соответствующих css файлов)

Эти два скрипта содержат все необходимое. Так же сжаты и оптимизированы css файлы и остальные скрипты фреймворка.

Разница в скорости загрузки огромная, ходил под впечатлением весь оставшийся день :)

Удачного кодирования.

  1. [...] Разводим Dojo Toolkit на максимальную производительность [...]