Как стать автором
Обновить

Комментарии 39

НЛО прилетело и опубликовало эту надпись здесь
Афигеть, давно такого отличного материала не видел на хабре!
Половину вообще не понял, поэтому в избранное и буду потом перечитывать =)
хорошая статься, только не

pngcrush image.png -rem alla -reduce result.png

а

pngcrush -rem alla -reduce image.png result.png
благодарствую за ценную информацию.
использование GET для AJAX-запросов приведёт к очень простой реализации XSS взлома на вашем сайте

читайте вдумчиво
позвольте поинтересоваться, а чем кардинально GET отличается от POST ?
Например тем, что поисковики (а очень часто именно им подсовывают такие ссылки) делают GET, а не POST.
Это легко решается: достаточно обновление при GET делать только по авторизации или каким-то другим условиям
<img src="http://site/?do=delete">
дальше можно думать самому
сначала Вы говорили о XSS-взломе, теперь уже про элементарную защиту GET-запросов от поисковых ботов и неавторизованных пользователей. Как работать со вторым случаем, я указал, но про первый информации так и не получил.
какие поисковые боты, какой неавторизированный пользователь, о чем речь? )

если я такой код влеплю на сайт, браузер как миленький пошлёт куку, принадлежащую site и пользователь будет опознан

ознакомьтесь с историей про Чёрного Властелина на Хабре
добавил в закладки. кое-какие приемчики использую, например оптимизацию пнг, тем приятнее было прочесть о них здесь. вообще на редкость ценная статья. автору респект
как-то сумбурно... да и к этим советам когда-то дошел путем логичных рассуждений, но статейка полезная для начинающих, спасибо...
Чем сжимать HTML на стороне сервера?
пара RegExp + gzip/deflate. Подробнее про gzip
еще небольшая ошибка - у jpegtran нету -perfect, по крайней мере не в доступной для меня версии.

придумываю как оптимизировать все jpg разом, пока команда получается достаточно монстроуозная ввиду того, что я не знаю как научить xargs запускать последовательность из нескольких команд.
ls -1s *.jpg | awk '{if($1 > 4) print $2;}' | xargs -I % jpegtran -copy none -optimize -progressive -outfile %.packed % && ls -1 *.packed | sed s/\.packed//i | xargs -I % mv %.packed %

также тут я проверяю на размер файла, так как -progressive для маленьких картинок наоборот увеличивает их размер, а большие без него хуже оптимизируются
а зачем последовательность? можно ведь цикл с помощью for запустить, а там творить все, что душе угодно, хоть последовательно, хоть параллельно команды выполнять
да, я сейчас на цикл и думаю переделать, по тому что наткнулся на ls: Argument list too long :)
ну как? получилась универсальная команда?
отлично, по такой статье можно смело книгу сделать
sunnybear, матёрый человечище.
Многое очень полезно, но «написано» — как для роботов. Списки и неполные предложения — на любителя.
Товарищи, ни у кого нет информации, как обстоят дела с сжатием css и js в ИЕ? Автор статьи рекоммендует их сжимать, но в интернете пишут что ИЕ 6 иногда глючит на сжатых css.
Отключать сжатие для ИЕ в конфигах апача?
иногда по моим наблюдением — это 1 раз на 1000. Если это настолько критично для проекта и важнее ускорения для 999 человек, то стоит отключить :)

Также обычно семантическая верстка выглядит настолько хорошо, что стили ее только портят :)
хмм, сомнительные они какие-то. Попробовал OptiPNG при максимальном сжатии (5 разных картинок) — работает не лучше pngcrush, но заметно медленнее.
Задача pngcrush — объединить все ветви IDAT и подобрать наилучшие параметры deflate-алгоритмов

У OptiPNG задача намного объёмнее:
* Без потерь уменьшить цветовую глубину, палитру и типы цвета.
* Подобрать и использовать походящие фильтры сжатия; применить эти фильтры для подходящих строк
* Поддержка BMP, GIF, PNM (PBM, PGM, PPM) TIFF
* Сжать CRC для IDAT

Большинство таких возможностей формата png выполнит OptiPNG, но не pngcrush
т.е. он будет эффективен только для PNG24? ибо для gif можно применять gif2png, для bmp: bmp2png, остальные форматы как-то не совсем вебовские (т.е. все равно жать нужно, может, правда, tiff как-то затешется).

И по поводу эффективности я бы все же провел дополнительное тестирование: я верю, что он может жать, в среднем, лучше чем pngcrush, но надо смотреть, насколько лучше. Ресурсы-то сильно тратит.
Оптимальнее всего использовать pngcrush и optipng в связке, иногда прогон opti-crush даёт лучшие результаты, иногда crush-opti. У меня даже sh-скрипт под это дело есть.
Интересно, почему горизонтальные спрайты лучше вертикальных? Может там размер оптимизируется?
у меня была мысль про вертикальную фильтрацию для Png, но ничем не подтвержденная
filter для спрайтов не подходит, их же нельзя отпозиционировать
Можно, только делать их надо по другому. Всё никак не дойду в статью это оформить.
Виталий, можно рабочий пример?
Я сегодня допишу статью и вечером или завтра утром опубликую.
Виталий, пример так и остался на бумаге? Очень хотелось бы взглянуть
Двумя дивами?
Два элемента и абсолютное позиционирование одного внутри другого.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.