Di Sole

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

Posted in Dojo Toolkit, JavaScript by ignar on 25.06.2009

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

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

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

Статьи про Dojo Toolkit на DaddyFeed.com

Начнем по порядку, первое и самое важное, вам нужна полная версия фреймворка с утилитами, для этого вам нужен 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 файлы и остальные скрипты фреймворка.

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

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

Реклама
Tagged with: ,

Один ответ

Subscribe to comments with RSS.

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


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: