Как Microsoft делала Live

Август 24, 2006

Специалист из Microsoft, Scott Isaacs, набрался опыта в процессе разработки Live.com и поделился такими соображениями:

1. Контролируйте кол-во соединений с web-сервером

AJAX довольно прожорлив в плане конектов сам по себе. Если вы строите динамический интерфейс в стиле gmail, то «дергать» сервер приходится постоянно чтобы иметь актуальные данные на клиенте.

Скотт, также столкнулся с проблемой проверки кэша для картинки, которая была вставлена в страницу динамически. IE проверяет кэш для такой картинки каждый раз при её появлении на экране. Поэтому рекомендуется загрузить картинки в IE перед тем как их использовать. приблизитльно так:
<script>
preload_images(‘img1.gif’,'img1.gif’)
function preload_images(){
for (var x=0; x<preload_images.arguments.length; x++){
imar[x] = new Image();
imar[x].src = ‘img/’+preload_images.arguments[x];
}
}
</script>
2. Избегайте использования XML на клиенте

Браузеры тяжело разбираются с XML-ем в javascript-e. Поэтому без лишней необходимости с большими xml-ями лучше на клиенте не работать. На серверной стороне live.com RSS каналы хранятся в нормализированном виде (судя по всему в базе), на клиент передается лента в JSON формате.
Для сравнения приводится время обработки 150кб RSS канала на клиенте: в XML – 400ms, в JSON – 15ms.

3. Контент надо кэшировать

Content-expiration надо ставить на все, за исключением данных, которые обновляются ежесекундно.
Очень важное замечание, но скорее как дополнение к первому пункту.

4. Разбивайте процесс загрузки приложения на модули

Для крупных AJAX приложений процесс загрузки модулей необходимо разделять и выполнять по необходимости.
Изначально загружаются только базовые бибилотеки, затем в случае необходимости модули Drag-n-Drop, затем RSS-библиотеки и т.д.
Действитльно правильный подход, помнится был где-то органайзер в стиле web2, который грузил два мегабайта внутренних JS-библиотек прежде чем показать окно регистрации.

5. Старайтесь не генерировать html на сервере.

Первичные шаблоны html-я могут быть загружены на первых этапах, но в дальнейшем их наполнение необходимо производить на основе мета-данных полученных через xmlhttp.

В дополнение к авторским пунктам:


6. Не забывайте о gzip, но и не увлекайтесь им.JS библиотеки и СSS очень полезно сжать gzip-ом и поставить разумный content-expiration.
Если вы придерживаетесь пункта 5 и у вас презентационный уровень представлен в виде HTML, а наполнение происходит данными из xmlhttp запросов, то HTML-шаблоны также имеет смысл сжать gzip-ом.
Сжатие динамических данных только излишне нагрузит процессор.

7. Обозначте понятие midia-хоста.

При планировании архитектуры вынесите медиа-сервер для хранения фото, видео или пользовательских файлов на отдельный хост. Так, чтобы загрузка у вас была не из «/video-store/myvideo.avi», а с «http://media1.mydomain.com/video-store/myvideo.avi»

8. Забудте о всех нормальных формах баз данных:) ознакомьтесь с идей Lucene.

Entry Filed under: Web 2.0, Web 20 Ru, Web20, ajax, architecture, browsers, css, gzip, javascript, json, live, live.com, lucene, microsoft, optimization, performance, web2, xml, Новости Web 2.0. .

7 Comments Add your own

  • 1. Новости 2.0  |  Август 24, 2006 at 2:47 пп

    Обсудите эту новость на news2.ru

  • 2. woofer  |  Август 30, 2006 at 5:21 пп

    Интересная зарисовка. Вряд ли мне, как не технарю, прогодится, но познавательно :)

  • 3. generic cialis  |  Январь 17, 2007 at 9:27 пп

    generic cialis

    news

  • 4. Gift  |  Июнь 4, 2007 at 11:23 дп

    Nice resource, very interesting reading. retirements gifts

  • 5. LolleyNealt  |  Ноябрь 22, 2007 at 7:56 дп

    Ðåãèñòðàöèÿ â Áåëûõ Êàòàëîãàõ 8931 êàòàëîã – 30$
    Ïî âñåì âîïðîñàì ñòó÷àòü â ICQ 374551957

    Registratsija v Belyh Katalogah 8931 katalog – 30$ ICQ 374551957

  • 6. ICQMans  |  Ноябрь 28, 2007 at 1:55 дп

    Prodaiy ICQ za 12$ za vse.Ïðîäàþ ICQ 12$ çà âñå.
    274-693
    324-994
    564-567
    605-800
    695-769
    985-425
    132-335
    478-575
    Sviaz so mnoi ICQ 458411483. Ñâÿçü ñî ìíîé ICQ 458411483

  • 7. ICQManZ  |  Ноябрь 28, 2007 at 3:20 пп

    Prodaiy ICQ za 12$ za vse.Ïðîäàþ ICQ 12$ çà âñå.
    274-693
    324-994
    564-567
    605-800
    695-769
    985-425
    132-335
    478-575
    Sviaz so mnoi ICQ 458411483. Ñâÿçü ñî ìíîé ICQ 458411483

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


RSS Мобильные Новости

Наш архив

Свежие записи

Статистика

Проекты