осторожнее с внешними инструментами

случайно нашёл текст «Surrogate Scripts vs Google Analytics», рассказывающий об интересной проблеме: иногда яваскрипт-программисты используют в коде дополнительные возможности внешних инструментов типа Google Analytics, и когда пользователь избирательно блокирует такие сборщики статистики, яваскрипт ломается. Например, если в обработчике onclick кнопки первым делом вызывается urchinTracker(…), который определён в забаненном urchin.js, то остальной код обработчика просто не выполнится

статья предлагает решение такой проблемы со стороны пользователя при помощи некоторых фич Greasemonkey. Как обычно, того же эффекта можно добиться и в опере, но меня эта проблема не касается: я намеренно не блокирую счётчики, чтобы не ухудшать показатели оперы в статистике

а волнует меня эта проблема со стороны разработчика: нужно помнить не только о том, что яваскрипт может оказаться недоступен, но и том, что недоступной может стать только часть его. Конечно, в осторожности нужно знать меру, и границей здесь логично сделать границу между внутренними и внешними скриптами. Хотя мне и не по душе реализующий ту же концепцию разделения трюк Резига «выполнять этот код только при загрузке скрипта»

в общем, рекомендую:

window.urchinTracker && window.urchinTracker(…);

Артемий Трегубенко,
,

comments powered by Disqus