Pull to refresh

Comments 15

Как насчет (в синтаксисе могу ошибаться, но общая идея):

document.onload=function() { // document.onload заменить на соответствующий фреймворку при необходимости
var element=document.createElement('script');
element.setAttribute('src', 'http://counter.com/script.js');
document.body.appendChild(element)
}

Как насчет солюшена от Mootools? Оно как бы довольно кроссбраузерное.

По идее если нужна только эта функция, то достаточно нетрудно выпотрошить из библиотеки нужный код.
можно все эти счётчики в отдельный фрейм вынести…
frame.contentDocument.referrer= document.referrer
или типа того…
Кхм… мне кажется есть и другие пути, необязательно менять библиотеку счетчика :)
Вот Вы меняли строки
    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;
Ну ещё можно дописать else document_write.call(document, s_code); (на всякий пожарный =)

Как я понимаю, все эти манипуляции со счётчиками придуманы для (1) отложенной загрузки картинкок-счётчиков, чтобы дать быстрее загрузиться «родной» статике; (2) избавления от дополнительных внешних JS-файлов; (3) избавления от document.write.
Поэтому только подмена document.write может и не помочь оптимизации.

С другой стороны, отложенная загрузка счётчиков сделает статистику менее точной… Вобщем нужен какой-то компромис.
А мы не ставим Гугл.Аналитикс только из-за того, что там происходит загрузка JS из чёрти-от-куда (я что-то даже и не подумал, что там доп.картинка загружается).
Теперь есть повод присмотреться к Г.А. повнимательнее, а заодно и Лирушный счётчик переделать =)
Есть сомнения насчет полезности переноса ga.js на свой сервер.

Конечно, результаты тестов загрузки могут улучшиться, но преимущество ga.js расположенного на сервере google в том, что он используется на многих сайта, а значит уже прокеширован у большинства пользователей. Чтобы убедиться в этом достаточно посмотреть с помощью FireBug > Net (заранее ставим точечку Enabled), никакой загрузки ga.js при переходе с сайта на сайт не происходит сразу передаются данные через картинку.

Более того, перенос ga.js на свой сервер приведет к противоположному результату, браузеру придется загружать его каждый раз (если и прокешируется то только для конкретного сайта, а не для всех сразу).

Вот скриншот FireBug > Net для пары сайтов:
Правилами систем статистики обычно запрещено менять код счетчика.
Был несколько лет назад популярный на западе счетчик, хороший удобный счетчик. (Сейчас уже и название не вспомню)
Его код загружался с удаленного сервера и работал он прекрасно.
Затем контору эту кто-то выкупил и стал у счетчика новый хозяин.
Прошло месяца два после этого и в коде счетчика начал подгружаться не только счетчик, но и бонус — троян.
Вывод: будьте внимательными, когда разрешаете кому-то вставлять в ваш сайт чужой код! (счетчик это, или что угодно другое)
Вопрос из зала — а нафига? Картинки подгружаются асинхронно, на загрузку страницы они не влияют, DOMContentLoaded и иже с ними наступают независимо от того, подгрузились картинки или нет. Что мы выигрываем-то?

GA — это понятно, внешний скрипт останавливает загрузку страницы, его имеет смысл грузить постфактум. А картинки-то чем мешают?
Only those users with full accounts are able to leave comments. Log in, please.