Как 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
Leave a Comment
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
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