Архив

Архив раздела ‘Трюки и хитрости’

Производительность браузеров в зависимости от верстки

23 Декабрь 2008 gAmUssA

На сайте техногрета Студии Лебедева появилась познавательная статья о Производительности браузеров в зависимости от верстки.

Процитирую выводы из статьи

  1. Для интерактивных элементов лучше использовать position: absolute.
  2. Большое количество элементов на странице может снизить производительность, но не стоит увлекаться их сокращением в ущерб надежности макета.
  3. Не надо делать очень глубоких вложенных структур элементов.
  4. Прежде чем начинать верстку макета, следует узнать, какие интерактивные механизмы там должны быть — это избавит от многих проблем уже на начальном этапе работы над проектом.
  5. Не надо загонять себя в угол глупых стереотипов: «валидность» и «семантичность» никому, кроме самих разработчиков, не нужна.
  6. Не стоит без надобности растягивать картинки. Если это необходимо сделать, следует воспользоваться canvas.
  7. Как правило, img-элемент будет работать гораздо быстрее, чем CSS-свойство background-image.
  8. Помните главное правило: оптимизировать нужно то, что требует оптимизации.

Настоятельно рекомендую ознакомится с оригиналом, который содержит много позновательных графиков и тестов.

Деобфускатор JavaScript кода

19 Ноябрь 2008 gin

Хочу представить вам очень полезную онлайновую утилитку – деобфускатор js кода.
Из вот такого:

?View Code JAVASCRIPT
1
_B_record();_WaitForStyles(function(){_B_record();_WaitForIframes(top.document,["hist_frame","sound_frame","canvas_frame"],function(t){if(t)_B_log("iframe timeout");_B_record();top.clearTimeout(top.loadTimeout);main()},10000)})

Она лихо сделает красиво оформленный и понятный код:

?View Code JAVASCRIPT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
_B_record();
_WaitForStyles(function ()
{
    _B_record();
    _WaitForIframes(top.document, ["hist_frame", "sound_frame", "canvas_frame"], function (t)
    {
        if (t) {
            _B_log("iframe timeout");
        }
        _B_record();
        top.clearTimeout(top.loadTimeout);
        main()
    }, 10000)
})

Собственно ссылка – http://code.gosu.pl/dl/JsDecoder/demo/JsDecoder.html
Постоянная ссылка на статью http://russianblog.brainitup.com/index.php/2008/11/19/deobfuskator-javascript-koda/
Автор: gin

Portable IE6

17 Ноябрь 2008 gin

Часто при верстке страниц сайта возникает необходимость протестировать во всех известных браузерах. Даже в умирающем IE6. Но сейчас на новых компьютерах найти IE6 трудно. Так что предлагаю Вам Portable версию Internet Explorer 6.
Скачать с easy-share.com или с disk.narod.ru.

upd. В комментариях fms0acid выложил очень полезную ссылку

Восстановление MsSQL базы из mdf файла

1 Октябрь 2008 gin

Если вдруг получилось так, что базу снесли из Management Studio, но у вас есть mdf файл базы. И нет бэкапов как таковых(bak файлов), то можно очень красиво восставить базу из mdf файла с помощью хранимой процедуры:
Читать далее…

Сравнительный тест на скорость – cURL vs file_get_contents()

30 Сентябрь 2008 gin

Так или иначе web-разработчик сталкивается с вопросом загрузки информации с других сайтов.
Как-то было принято всегда пользоваться удобной и понятной функцией file_get_contents() в php. Не очень давно стал набирать обороты cURL – гибкая надстройка, которая заточена под работу с протоколом http да и не только. Теперь небольшой тестик на скорость загрузки страниц:
Читать далее…

Eclipse tips #1

24 Сентябрь 2008 gAmUssA

Попробую начать новую рубрику, в которой буду рассказывать о трюках и хитростях, при работе с Eclipse. Сегодняшний разговор будет о расширения, которые на мой взгляд помогут Вам в разработке. Читать далее…

Chrome’ированные пасхальные яйца

6 Сентябрь 2008 gin

Google Chrome – мега круой браузер. Как и везде в нем есть свои скрытые моменты. Например, вбейте в адресной строке:

  • about:memory
  • about:stats
  • about:network
  • about:internets
  • about:histograms
  • about:dns
  • about:cache
  • about:plugins
  • about:version

Для кого-то показанная информация может оказатсья полезной.

Перемешивание ассоциативных массивов на php

5 Сентябрь 2008 gin

Есть функция в php для перемешивания массивов – shuffle. Но она не очень пригодна для ассоциативных массивов. Вот вариант небольшой функции, пригодной для этих целей.

<?PHP
function ass_array_shuffle ($array) {
    while (count($array) > 0) {
        $val = array_rand($array);
        $new_arr[$val] = $array[$val];
        unset($array[$val]);
    }
    return $new_arr;
}
?>

Взято из комментариев со страницы http://ru.php.net/manual/ru/function.shuffle.php

INSERT … VALUES (SELECT…) – вставка в таблицу результата запроса из той же таблицы

25 Август 2008 gin

Зачастую возникает вопрос как вставить в INSERT результат SELECT’a из тоже таблицы. Например если надо вставить id, который на 1 больше чем предыдущий оп условиям в WHERE. Кто-то решает это через хранимые процедуры. кто-то плюет и делает 2 запроса подряд. А дело в том, что mysql «ругается» на использование имени таблицы и в INSERT и в SELECT одновременно. Сейчас поймете о чем я.
Если есть таблица такого содержания:

id city_id name id_user
1 125 Moscow 10
2 126 Lipetsk 10
1 40 New York 11
2 35 Atlanta 11

Читать далее…

Firefox глазами разработчика

29 Июль 2008 gAmUssA

Логическое продолжение поста

Кто из нас использует Firefox? К примеру, как разработчик, я понял, что Firefox более совместим со стандартами, чем Internet Explorer. Другим не мение важным фактором является то, что для Firefox существует ну просто туева хуча различных дополнений. О некоторых дополниях из раздела must have мы писали здесь. Сегодня – очередная порция!

Читать далее…