Comments 15
new Iamge(1,1) -> new Image(1,1)
+1
Как насчет (в синтаксисе могу ошибаться, но общая идея):
document.onload=function() { // document.onload заменить на соответствующий фреймворку при необходимости
var element=document.createElement('script');
element.setAttribute('src', 'http://counter.com/script.js');
document.body.appendChild(element)
}
document.onload=function() { // document.onload заменить на соответствующий фреймворку при необходимости
var element=document.createElement('script');
element.setAttribute('src', 'http://counter.com/script.js');
document.body.appendChild(element)
}
0
можно все эти счётчики в отдельный фрейм вынести…
0
Кхм… мне кажется есть и другие пути, необязательно менять библиотеку счетчика :)
Вот Вы меняли строки
А теперь оставляем их в покое, а перед вызовом этого скрипта (подключением через тег <script>) вставляем свой код.
Вот и все :) Может конечно работать сразу не будет (не проверял), и нужно будет поколдовать с регулярным выражением (или как то иначе выбирать url из текста) — но мысль я думаю ясна.
Если после этого вам нужен будет настоящий метод document.write, просто допишите после скрипта счетчика
Вот Вы меняли строки
var s_code=s.t();if(s_code)document.write(s_code) return '<im'+'g sr'+'c=" +"\"'+rs+'\" width=1 height=1 border=0 alt=\"\">'
А теперь оставляем их в покое, а перед вызовом этого скрипта (подключением через тег <script>) вставляем свой код.
var document_write = document.write; document.write = function(str){ var m = str.match(/src=['"](.+?)['"]/i); if (m) new Image(1,1).src = m[1]; }
Вот и все :) Может конечно работать сразу не будет (не проверял), и нужно будет поколдовать с регулярным выражением (или как то иначе выбирать url из текста) — но мысль я думаю ясна.
Если после этого вам нужен будет настоящий метод document.write, просто допишите после скрипта счетчика
document.write = document_write;
+2
Ну ещё можно дописать
Как я понимаю, все эти манипуляции со счётчиками придуманы для (1) отложенной загрузки картинкок-счётчиков, чтобы дать быстрее загрузиться «родной» статике; (2) избавления от дополнительных внешних JS-файлов; (3) избавления от document.write.
Поэтому только подмена document.write может и не помочь оптимизации.
С другой стороны, отложенная загрузка счётчиков сделает статистику менее точной… Вобщем нужен какой-то компромис.
else document_write.call(document, s_code);
(на всякий пожарный =)Как я понимаю, все эти манипуляции со счётчиками придуманы для (1) отложенной загрузки картинкок-счётчиков, чтобы дать быстрее загрузиться «родной» статике; (2) избавления от дополнительных внешних JS-файлов; (3) избавления от document.write.
Поэтому только подмена document.write может и не помочь оптимизации.
С другой стороны, отложенная загрузка счётчиков сделает статистику менее точной… Вобщем нужен какой-то компромис.
0
А мы не ставим Гугл.Аналитикс только из-за того, что там происходит загрузка JS из чёрти-от-куда (я что-то даже и не подумал, что там доп.картинка загружается).
Теперь есть повод присмотреться к Г.А. повнимательнее, а заодно и Лирушный счётчик переделать =)
Теперь есть повод присмотреться к Г.А. повнимательнее, а заодно и Лирушный счётчик переделать =)
0
Есть сомнения насчет полезности переноса ga.js на свой сервер.
Конечно, результаты тестов загрузки могут улучшиться, но преимущество ga.js расположенного на сервере google в том, что он используется на многих сайта, а значит уже прокеширован у большинства пользователей. Чтобы убедиться в этом достаточно посмотреть с помощью FireBug > Net (заранее ставим точечку Enabled), никакой загрузки ga.js при переходе с сайта на сайт не происходит сразу передаются данные через картинку.
Более того, перенос ga.js на свой сервер приведет к противоположному результату, браузеру придется загружать его каждый раз (если и прокешируется то только для конкретного сайта, а не для всех сразу).
Вот скриншот FireBug > Net для пары сайтов:
Конечно, результаты тестов загрузки могут улучшиться, но преимущество ga.js расположенного на сервере google в том, что он используется на многих сайта, а значит уже прокеширован у большинства пользователей. Чтобы убедиться в этом достаточно посмотреть с помощью FireBug > Net (заранее ставим точечку Enabled), никакой загрузки ga.js при переходе с сайта на сайт не происходит сразу передаются данные через картинку.
Более того, перенос ga.js на свой сервер приведет к противоположному результату, браузеру придется загружать его каждый раз (если и прокешируется то только для конкретного сайта, а не для всех сразу).
Вот скриншот FireBug > Net для пары сайтов:
+9
Правилами систем статистики обычно запрещено менять код счетчика.
+4
Был несколько лет назад популярный на западе счетчик, хороший удобный счетчик. (Сейчас уже и название не вспомню)
Его код загружался с удаленного сервера и работал он прекрасно.
Затем контору эту кто-то выкупил и стал у счетчика новый хозяин.
Прошло месяца два после этого и в коде счетчика начал подгружаться не только счетчик, но и бонус — троян.
Вывод: будьте внимательными, когда разрешаете кому-то вставлять в ваш сайт чужой код! (счетчик это, или что угодно другое)
Его код загружался с удаленного сервера и работал он прекрасно.
Затем контору эту кто-то выкупил и стал у счетчика новый хозяин.
Прошло месяца два после этого и в коде счетчика начал подгружаться не только счетчик, но и бонус — троян.
Вывод: будьте внимательными, когда разрешаете кому-то вставлять в ваш сайт чужой код! (счетчик это, или что угодно другое)
0
Вопрос из зала — а нафига? Картинки подгружаются асинхронно, на загрузку страницы они не влияют, DOMContentLoaded и иже с ними наступают независимо от того, подгрузились картинки или нет. Что мы выигрываем-то?
GA — это понятно, внешний скрипт останавливает загрузку страницы, его имеет смысл грузить постфактум. А картинки-то чем мешают?
GA — это понятно, внешний скрипт останавливает загрузку страницы, его имеет смысл грузить постфактум. А картинки-то чем мешают?
0
Sign up to leave a comment.
Разгоняем счетчики: от мифов к реальности