Как Microsoft делала Live
Август 24, 2006 at 1:35 дп 20 комментариев(я)
Специалист из 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: ajax, architecture, browsers, css, Новости Web 2.0, gzip, javascript, json, live, live.com, lucene, microsoft, optimization, performance, Web 2.0, Web 20 Ru, web2, Web20, xml. Tags: .
Комментарии (20) Add your own
Добавить комментарий
Trackback this post | Подписаться на комментарии через RSS-ленту
1. Новости 2.0 | Август 24, 2006 в 2:47 пп
Обсудите эту новость на news2.ru
2.
woofer | Август 30, 2006 в 5:21 пп
Интересная зарисовка. Вряд ли мне, как не технарю, прогодится, но познавательно
3. generic cialis | Январь 17, 2007 в 9:27 пп
generic cialis
news
4.
Gift | Июнь 4, 2007 в 11:23 дп
Nice resource, very interesting reading. retirements gifts
5.
LolleyNealt | Ноябрь 22, 2007 в 7:56 дп
Ðåãèñòðàöèÿ â Áåëûõ Êàòàëîãàõ 8931 êàòàëîã – 30$
Ïî âñåì âîïðîñàì ñòó÷àòü â ICQ 374551957
Registratsija v Belyh Katalogah 8931 katalog – 30$ ICQ 374551957
6.
ICQMans | Ноябрь 28, 2007 в 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 в 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
8.
NNdrovec | Январь 12, 2010 в 1:44 дп
Alaev, никому не пригодится, нет толка от каталога Апорта.
9.
AlexGK | Январь 12, 2010 в 10:03 дп
Sanek, а вы читайте внимательнее.
10.
Makakas | Январь 19, 2010 в 7:55 пп
ну так какие заработки то в этой теме? сабж не раскрыт…
11.
Mironir | Январь 20, 2010 в 2:55 дп
Торренты – это гениально. Вы только задумайтесь, каким образом можно заставить миллионы людей предоставлять свое дисковое пространство и каналы, при этом совершенно бесплатно. Мне кажется, это один из крупнейших интернет-прорывов за последние годы
12.
MaRarts | Январь 20, 2010 в 7:42 пп
Функционал крут, но дизайн на нравится больше :
13.
MrFatc | Январь 21, 2010 в 10:20 дп
Я веду блог для того чтоб научиться хорошо писать.
14.
Mcdonald | Январь 21, 2010 в 8:55 пп
ЖЫРный сервайс. Только есть подозрение, что он в будущем станет платным
15.
Roloda | Январь 23, 2010 в 3:57 пп
Странная штука жизнь – вроде затрахала, а не удовлетворяет…
16.
Rolodas | Январь 24, 2010 в 3:25 дп
На поддомене было бы интереснее =)В целом сервис понравился
17.
Rikitik | Январь 24, 2010 в 7:02 пп
Я тоже хочу что-нибудь умное сказать!
18.
daulapeappeve | Апрель 7, 2010 в 4:05 пп
Некая дама говорила мне как нечто само собой разумеющееся: Я никогда не думаю – это меня утомляет; а если уж думаю, то ни о чем.
19.
daulapeappeve | Апрель 15, 2010 в 11:10 дп
Церковь спасает грешников, а наука ищет способы остановить их производство.
скачать железный человек 2 торент
20.
daulapeappeve | Май 13, 2010 в 12:22 пп
Малые умы интересуются необычайным; великие – самым обычным.