Валидный скрипт счётчика: рецепт компактного скрипта
В наши дни существует великое множество счётчиков и систем статистики. Выбор воистину велик, но большинство из них не удовлетворяют требованиям xHTML. В этой статье я покажу пару фишек, которые позволят навсегда избавится от громоздкого кода, помогут приблизить структуру кода вёрстки к минимализму.
Для экспериментов мы возьмем самый обычный скрипт счётчика HotLog и хорошенько его изучим. Для наглядности я буду поэтапно изменять код и комментировать свои действия. Поехали.
HotLog счётчик: базовый код
<!-- HotLog --> <script type="text/javascript" language="javascript"> hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=2016268&im=133&r="+ escape(document.referrer)+"&pg="+escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); </script> <script type="text/javascript" language="javascript1.1"> hotlog_js="1.1"; hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N"); </script> <script type="text/javascript" language="javascript1.2"> hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+"x"+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))?screen.colorDepth:screen.pixelDepth); </script> <script type="text/javascript" language="javascript1.3"> hotlog_js="1.3"; </script> <script type="text/javascript" language="javascript"> hotlog_r+="&js="+hotlog_js; document.write('<a href="http://click.hotlog.ru/?2016268" target="_top"><img '+ 'src="http://hit32.hotlog.ru/cgi-bin/hotlog/count?'+ hotlog_r+'" border="0" width="88" height="31" alt="HotLog"><\/a>'); </script> <noscript> <a href="http://click.hotlog.ru/?2016268" target="_top"> <img src="http://hit32.hotlog.ru/cgi-bin/hotlog/count?s=2016268&im=133" border="0" width="88" height="31" alt="HotLog"> </a> </noscript> <!-- /HotLog -->
Если мы присмотримся к счётчику, то обратим внимание, что он состоит не из одного скрипта, а целых пяти! Зачем нам столько хлама? Зачем определять версию JS поддерживаемую клиентской машиной? Нещадно режем лишнее:
HotLog счётчик: компактный вид.
<!-- HotLog --> <script type="text/javascript"> hotlog_js="1.3"; hotlog_r=""+Math.random()+"&s=2016268&im=133&r="+ escape(document.referrer)+"&pg="+escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N"); hotlog_r+="&wh="+screen.width+"x"+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))?screen.colorDepth:screen.pixelDepth); hotlog_r+="&js="+hotlog_js; document.write('<a href="http://click.hotlog.ru/?2016268" target="_top"><img '+ 'src="http://hit32.hotlog.ru/cgi-bin/hotlog/count?'+ hotlog_r+'" border="0" width="88" height="31" alt="HotLog"><\/a>'); </script> <noscript> <a href="http://click.hotlog.ru/?2016268" target="_top"> <img src="http://hit32.hotlog.ru/cgi-bin/hotlog/count?s=2016268&im=133" border="0" width="88" height="31" alt="HotLog" /> </a> </noscript> <!-- /HotLog -->
Мы объединили скриты в один и теперь он выглядит гораздо приятнее. Что можно сделать еще? А давайте вынесем его за пределы страницы в отдельный файл. Для этого просто скопируйте всё, что находится между тегами <script></script>, создайте новый текстовый файл с расширением js, вставьте в него код и сохраните.
Перенесите новый скрипт со счётчиком к себе на сервер и подключите так, как показано в примере ниже:
HotLog счётчик: финальный вид.
<!-- HotLog --> <script type="text/javascript" src="/stat.js"></script> <noscript> <a href="http://click.hotlog.ru/?2016268" target="_top"> <img src="http://hit32.hotlog.ru/cgi-bin/hotlog/count?s=2016268&im=133" border="0" width="88" height="31" alt="HotLog" /> </a> </noscript> <!-- /HotLog -->
Обращу ваше внимание на содержимое тега <noscript>. Это изображение-баннер, которое будет показано пользователю при отключенных JavaScript. Логика браузера будет следующей: первым делом он попытается выполнить скрипт над тегом <noscript>. Там счётчик формирует параметры катринки и ссылки, которая будет отрисована. При невозможности выполнить скрипт пользователю покажется обычная картинка, код которой находится в <noscript>.
Вот так просто и быстро груда кода обретает чистый и опрятный вид. Замечу, что этот алгоритм применим абсолютно ко всем счётчикам на базе джава скриптов. Вы можете даже собрать все счётчики в один файл, что позволяет существенно разгрузить вёрстку и сделать сайт более семантичным.
Еще одним немаловажным моментом является то, что некоторые счётчики невалидны. На самом деле проблема валидности кроется в url строках, которые в соответствии со спецификацией не должны содержать в чистом виде такие символы, как например &. Решает это довольно просто.
<img src="http://shift-web.ru/rater/counter.html?id=7&addr=&ref=&j=false&dep=&rez=" alt="Shift-Web Rater" width="88" height="31" />
Заменим их HTML аналогами.
<img src="http://shift-web.ru/rater/counter.html?id=7&addr=&ref=&j=false&dep=&rez=" alt="Shift-Web Rater" width="88" height="31" />
Не забудьте прописать правильный путь до скрипта со счётчиком и имя файла. Успехов в минимализме и «валидаторстве»!
Да уж я неоднократно бился над тем, где найти нормальный счетчик. Пока удовляетворяет лайфинтернет. Но статья оч полезна, возьму на вооружение
в свое время голову ломал, какой счетчик установить. Пока самый нормульный лайфинтернет.
Не за что ;-)
Я тож недавно счётчик подбирал для сайта с субдоменами, но у меня с HotLog как-то не срослось, а у LiveInternet для субдоменов не всё работает, остановился на Google Analytics.
Гугл аналитикс - хорош
Большое спасибо! Я со всеми счетчиками разобрался, но с хотлогом ничего не получалось. Не проходил валидацию нипочем. Только с картинкой счетчика что-то не то, она не отображается. Вписал вместо & amp; но по такому адресу у хотлога нет картинки....
&amp;= &спасибо огромное, долго решала какой счетчик установить, а тут так все разжевано
ledy, не за что
Вот именно с этой статьи начинаю читать этот блог. Плюс один подписчик
Рад, что принесло пользу
Поздравляю вас Старо-Новым годом, желаю вам в новом году успехов и спасибо что вы находите время поддерживать ваш замечательный блог!
Хороший у вас блог! удачи в развитии
Блин, замучился уже, не получается, а так хочется валидным сделать хотлоговский счетчик
Quqe, скиньте код счётчика мне через форму связи. Сделаю вам
Отправить комментарий