Библиотека ExtJS/Sencha

индекс
90,79

ExtJS и хостинг базовых файлов в CDN

Если вы разрабатываете проекты на ExtJS, то наверняка в вашем дереве исходных кодов есть сам дистрибутив библиотеки и вы его подключаете на всех страницах, где используются ее возможности. И храните саму библиотеку также у себя на хостинге. Это, конечно, правильный и простой подход, но имеет свои ограничения. Во-первых, в большинстве случаев именно ExtJS будет самым большим компонентом страницы, ведь его общий объем около 1 Мб, а значит и будет тормозить страницу, пока браузер не загрузит всю библиотеку. Как выход, все рекомендуют настраивать сжатие (например, mod_deflate, хорошо, что браузеров, которые не понимают сжатый контент, теперь почти нет, а у кого есть, тот, как говорится, сам себе злобный буратино), теги кеширования и т.п. Ну и на крайний случай — собирать под свой проект, или даже под каждую страницу, свою версию библиотеки, включая туда необходимые компоненты. Я уже писал о структуре фреймворка и расположенном на сайте конструкторе, который сможет автоматически сформировать вам ваш личный дистрибутив.

Однако теперь есть еще одна возможность хранить эти подключаемые файлы. Существуют такие системы как CDN — Content Delivery Networks, которые имеют собственную сеть географически разнесённых серверов, которые подключены к мощным скоростным каналам и находятся поблизости от пользователя, запрашивающего тот или иной файл. Если он хранится в CDN, то отдача файла будет происходить с сервера, который ближе всего к пользователю, а значит — файл загрузится быстрее.

В партнерстве с компанией CacheFly, ExtJS теперь может хранить свои сборки в такой сети. Кроме самих JS файлов хранятся так же и стилевые файлы (ext-all.css, который также достаточно объемный). Более того, теперь создавая собственную сборку фреймворка через веб-интерфейс, вы можете сразу поместить ее в CDN и использовать напрямую, просто поменяв ссылки. Учтите, что если ваш вариант сборки фреймворка уже кем-то используется, то новый файл не будет создаваться, а вам просто выдадут ссылку на уже закешированный.

Конечно, для многих проектов ускорение, достигнутое таким способом, может быть несущественным, ну выиграли мы пол-одну секунду… но поверьте, в борьбе за оптимизацию предела нет, а все, что помогает выиграть хоть самое малое время в работе приложения, будет оценено клиентами.

Я решил не только написать, но и проверить, действительно ли загрузка с серверов CacheFly будет идти быстрее, чем при подключении файла напрямую с сервера проекта.

Честно говоря, грузится не медленнее уж точно. В частности из-за того даже, что загрузка идет с другого хоста, а значит параллельно браузер запрашивает другие файлы, а это важно, так как одновременное количество запросов к одному домену ограничено. Проверяя доступность сайта по пингу, в среднем значения были на уровне или ниже данных для моего сервера, хотя когда я проверял в прошлый раз, различие было значительнее, раза в полтора, на пользу CacheFly. Так что советовать что-то сложно — это надо лично пробовать, однако хуже не будет, это уж точно.
+19
27 ноября 2008, 22:54
18

комментарии (7)

0
enemy_spb #
Остается добавить что файлы там сжатые
Вот пример для полной сборки
extjs.cachefly.net/builds/ext-cdn-10.js 171 KB (541 KB uncompressed)
Так же очень радует, что оттуда будут грузиться и все изображения при подключении их css.

Кстати использование CDN оставалось единственным оставшимся пунктом в yahoo slow чтобы достичь максимума для сайта над которым я сейчас работаю, скорее всего начну использовать)
0
enemy_spb #
да еще хотелось бы хедер Expire а не Etag, чтобы вообще всё было в шоколаде.
Но думаю я сильно многое хочу.
0
SibProgrammer #
Ждал когда ExtJS появится на code.google.com/apis/ajaxlibs/ а тут товарищи опередили :) Кстати, еще один из резонов использования подобных сервисов — увеличивается шанс, что у пользователя уже закэширована библиотека от посещения другого сайта, использующего ее.
0
ashmind #
У ExtJS лицензия так себе для того, чтобы его с Google сервить.
Не очень много народу делают полностью open-source сайты, а платные вещи Google вообще не касаются.
0
RayZ #
Не всегда конечно сжатие хорошо на этом фреймворке отражается… :) Я несколько раз на костыли нарывался.
+1
ayavryk #
>но поверьте, в борьбе за оптимизацию предела нет
Имхо оптимизация и js-фреймворк весом 1Мб вещи несовместимые. Совсем.
Ну м.б. только в интранет-сетях очень жирных контор, не экономящих на железе.
+1
Maximark #
Плохо одно, у ExtJS лицензия совсем не чистый os :\

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.