Клиентская оптимизация → Доклад на openwebcamp kiev 2010 по клиентской оптимизации
Чтобы сайт загружался быстро существует несколько простых способов, которые к тому же не сложно применить на практике. Конечно все зависит от вашего проекта, его размеров и особенностей. Но все же большинство правил применимо везде.
Основные принципы:
Делать меньше HTTP запросов к серверу
CSS файлы подключаем в head
Скрипты загружаем перед и перед счетчиками и дургими внешними «медленными» или непрогнозируемыми вещами
Убираем inline стили, блоки кода с HTML шаблонов. Все грузим с кешируемых внешних файлов.
Переносим файлы CSS Javascript графику на cookie-free домен
Избегаем CSS Expressions
Expires заголовки, настраиваем нужное кеширование
GZIP для HTML CSS Javascript файлов
Уменьшаем кол-во используемых DNS имен
Сжимаем HTML CSS Javascript
Избегаем редиректов
Основные принципы:
Делать меньше HTTP запросов к серверу
CSS файлы подключаем в head
Скрипты загружаем перед и перед счетчиками и дургими внешними «медленными» или непрогнозируемыми вещами
Убираем inline стили, блоки кода с HTML шаблонов. Все грузим с кешируемых внешних файлов.
Переносим файлы CSS Javascript графику на cookie-free домен
Избегаем CSS Expressions
Expires заголовки, настраиваем нужное кеширование
GZIP для HTML CSS Javascript файлов
Уменьшаем кол-во используемых DNS имен
Сжимаем HTML CSS Javascript
Избегаем редиректов
Каскадные Таблицы Стилей → Unlimited IE one-time CSS expressions
В поддержку дней CSS expressions на хабре
Думаю все, кто сталкивался с решением каких-нибудь проблем в IE<8 знает про CSS expressions и про «одноразовые» CSS expressions, которые применяются к элементу только один раз, тем самым не создавая постоянной нагрузки на процессор. Обычно это решается так:
Думаю все, кто сталкивался с решением каких-нибудь проблем в IE<8 знает про CSS expressions и про «одноразовые» CSS expressions, которые применяются к элементу только один раз, тем самым не создавая постоянной нагрузки на процессор. Обычно это решается так:
.my-class {
behavior: expression(someMagick(), runtimeStyle.behavior = 'none');
}
Каскадные Таблицы Стилей → CSS-Expressions on DOMReady (CSS+JS в одном файле)
Вероятно, многие из вас используя css-expressions сталкивались с проблемой периодического появления сообщения abort. В народе поговаривают, что связано это с изменением DOM-дерева до его готовности.
Я тоже сталкивался и, не долго думая, решил написать небольшую «обертку» для expression’ов, которые я часто использую, учитывающую готовность DOM, упакованную в файл стилей.
Оную вашему вниманию и представляю.
Я тоже сталкивался и, не долго думая, решил написать небольшую «обертку» для expression’ов, которые я часто использую, учитывающую готовность DOM, упакованную в файл стилей.
Оную вашему вниманию и представляю.
Блог им. trurl123 → Кроссдоменный AJAX на основе CSS
Недавно столкнулся с проблемой как передать данные с сервера A в
javascript на сервер B, если на сервере B серверный код писать нельзя,
а на А можно.
И нашел элегантное решение.
Суть решения в том, что для использования предлагается объект
CSSHttpRequest, предоставляющий выполнять AJAX-запросы на базе CSS. Это
работает, поскольку CSS не имеет ограничений безопасности, которые имеет
стандартный объект XMLHttpRequest.
В отличие от JSONP имеет ограничение только на GET-запросы. Также есть некоторые проблемы совместимости с браузерами
Код выглядит следующим образом.
Данные кодируются на сервере в виде 2-х килобайтных цепочек. Ответ
возвращается в в виде:
На сервере B с помощью javascript создается невидимый IFRAME, в который
и загружается CSS.
Это также работает и в XHTML.
Данное решение совместимо с IE6+, Firefox 2+, Safari 3+, iPhone.
Вид лицензии: Apache License
javascript на сервер B, если на сервере B серверный код писать нельзя,
а на А можно.
И нашел элегантное решение.
Суть решения в том, что для использования предлагается объект
CSSHttpRequest, предоставляющий выполнять AJAX-запросы на базе CSS. Это
работает, поскольку CSS не имеет ограничений безопасности, которые имеет
стандартный объект XMLHttpRequest.
В отличие от JSONP имеет ограничение только на GET-запросы. Также есть некоторые проблемы совместимости с браузерами
Код выглядит следующим образом.
CSSHttpRequest.get(
"http://www.nb.io/hacks/csshttprequest/hello-world/",
function(response) { alert(response); }
);Данные кодируются на сервере в виде 2-х килобайтных цепочек. Ответ
возвращается в в виде:
#c0 { background: url(data:,Hello%20World!); }
#c1 { background: url(data:,I’m%20text%20encoded%20in%20CSS!); }
#c2 { background: url(data:,I%20like%20arts%20and%20crafts.); }На сервере B с помощью javascript создается невидимый IFRAME, в который
и загружается CSS.
Это также работает и в XHTML.
Данное решение совместимо с IE6+, Firefox 2+, Safari 3+, iPhone.
Вид лицензии: Apache License
Каскадные Таблицы Стилей → CSSDoc — формат комментариев для CSS
Уже неоднократно видел утверждение, что CSS необходимо комментировать, чтобы потом было проще сориентироваться себе или тому, кто также поддерживает или будет в дальнейшем поддерживать ваш код. Но почему-то никто не предлагает использовать какой-то универсальный формат комментариев, который был бы понятен всем, хотя в программировании такое используется повсеместно: JavaDoc, JSDoc, PHPDoc и т.п.
Несложно догадаться, что рано или поздно кто-нибудь бы захотел использовать подобный формат комментариев в CSS и такой формат появился: CSSDoc. Спецификация пока что имеет статус черновика, но ничто не мешает начать пользоваться основными правилами уже сейчас.
Несложно догадаться, что рано или поздно кто-нибудь бы захотел использовать подобный формат комментариев в CSS и такой формат появился: CSSDoc. Спецификация пока что имеет статус черновика, но ничто не мешает начать пользоваться основными правилами уже сейчас.
Каскадные Таблицы Стилей → Правила хорошего CSS
Расскажу о своих правилах, которые я использую в любом файле CSS.
Зачем это нужно? Во первых, ваш CSS-файл будет легче читаться и восприниматься. Во вторых, хороший стиль написания это всегда плюс. Ну и в третьих, это намного упрощает жизнь.
Зачем это нужно? Во первых, ваш CSS-файл будет легче читаться и восприниматься. Во вторых, хороший стиль написания это всегда плюс. Ну и в третьих, это намного упрощает жизнь.
JavaScript → Кросс-браузерный CSS transform (даже в IE)

CSS свойство transform позволяет масштабировать, наколнять и поворачивать HTML-блоки с помощью CSS. Движки Firefox, Opera и Webkit имеют встроенную поддержку свойства, чего нельзя сказать об Internet Explorer.
Но не все так печально, в IE есть фильтр DXImageTransform.Microsoft.Matrix который реализует такую функциональность.
Один замечательный человек по имени Zoltan Hawryluk разработал небольшую библиотеку под названием cssSandpaper, с помощью которой можно создавать интересные эффекты.
Каскадные Таблицы Стилей → Как IE8 определяет Document Mode, по которому затем рендерит сайты
Команда IE официально опубликовала алгоритм определения Document Mode в IE8.
Оказывается при определении Document Mode учитывается множество косвенных параметров, связанных с интранетом и клиентскими настройками.
Оказывается при определении Document Mode учитывается множество косвенных параметров, связанных с интранетом и клиентскими настройками.
Блог им. Mordraug → Еще один камушек в сторону IE6 :D
Сегодня наткнулся на это, и долго не мог понять в чём дело. Дело в том, что IE6 не матчит селектор id.class больше одного, но в то же время матчит дочерние селекторы через такие объявления.
Картинка:

Живой пример
Вот как так?
Картинка:

Живой пример
Вот как так?
PHP → Тесты для студентов и не только
Моя компания сотрудничает с несколькими ВУЗами города Харькова, благодаря чему студенты имеют возможность пройти производственную практику в IT компании, а не каком-нить заводе. А дабы не брать всех подряд – существуют тесты, с которыми можно ознакомится пройдя по ссылочке (PDF — 278kb) …
На уникальность вопросов не претендую, но пройти их будет полезно…
UPD: Документ под версией 1.0 — замечания и предложения принимаются…
На уникальность вопросов не претендую, но пройти их будет полезно…
UPD: Документ под версией 1.0 — замечания и предложения принимаются…