Код Яндекс Метрики мешает нормальной работе сайта

12
P
На сайте с 06.01.2009
Offline
592
4531

Здравствуйте.

Подскажите, пожалуйста, как можно найти в чем конкретно проблема? В какой переменной или ...

Вообщем, без установки кода ЯМетрики - при переходе по ссылке на внутр страницу и при дальнейшем нажатии в браузере "назад" - спокойно возвращаемся на предыдущий урл с параметрами отбора товара (т.е. остаются на странице те же товары с которых и ушли на внутряк).

При установке кода ЯМетрики - на урл возвращаемся, но отбор обнуляется, т.е. то что юзер выбрал в форме отбора - сбрасывается (как будто в первый раз зашел на страницу).

ps просто не могу понять, как можно найти в чем конкретно проблема, может дадите совет?

страница с формой и превью товаров подходящих по условиям формируется с помощью jQuerry)

Спасибо

код я метрики


<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter18523198 = new Ya.Metrika({id:1523158,
webvisor:true,
clickmap:true,
trackLinks:true,
accurateTrackBounce:true});
} catch(e) { }
});

var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";

if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/18523198" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
[umka]
На сайте с 25.05.2008
Offline
456
#1

Так проблема как раз в том и есть :)

Когда нет яндекс.метрики, все ява-скрипты на странице явно прописаны или подгружаются из файлов (т.е. могут быть закэшированы).

Когда яндекс.метрика есть, ява-скрипт генерится на лету.

Из-за этого, наверное, браузер и не сохраняет результат выполнения.

Лог в помощь!
P
На сайте с 06.01.2009
Offline
592
#2
'[umka:
;11233266']Так проблема как раз в том и есть :)
Когда нет яндекс.метрики, все ява-скрипты на странице явно прописаны или подгружаются из файлов (т.е. могут быть закэшированы).
Когда яндекс.метрика есть, ява-скрипт генерится на лету.
Из-за этого, наверное, браузер и не сохраняет результат выполнения.

Т.е. всё безнадежно? Просто мне бы очень хотелось пользоваться ЯМ.

Поясните, пожалуйста, почему Яндес.Метрика мешает кешировать результаты моих скриптов (функций)?

Просто ещё сервис Гугла поставил - таких побочных эффектов он не дает.

Когда яндекс.метрика есть, ява-скрипт генерится на лету.
[umka]
На сайте с 25.05.2008
Offline
456
#3

Надо посмотреть код гугла. Если в нём нет создания ява-скрипта "на лету", т.е. типа такого:

createElement("script")

то, скорее всего, моё предположение верно.

Насчёт безнадёжности диагноз поставить не могу :)

P
На сайте с 06.01.2009
Offline
592
#4
'[umka:
;11234317']Надо посмотреть код гугла. Если в нём нет создания ява-скрипта "на лету", т.е. типа такого:
createElement("script")
то, скорее всего, моё предположение верно.
Насчёт безнадёжности диагноз поставить не могу :)

Посмотрите, пожалуйста, может что окончательно мне сможете подсказать.

Судя по всему у него есть создание ява-скрипта "на лету", но он не мешает в отличии от ЯНдекса.


<!-- Google counter -->
<script type="text/javascript">

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-32963411-1']);
_gaq.push(['_setDomainName', 'site.ru']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

</script>
<!-- /Google counter -->
[umka]
На сайте с 25.05.2008
Offline
456
#5

Хе... тоже самое. Тогда я сдаюсь :)

Видимо, всё дело в подгружаемом файле.

P
На сайте с 06.01.2009
Offline
592
#6
'[umka:
;11234551']Хе... тоже самое. Тогда я сдаюсь :)
Видимо, всё дело в подгружаемом файле.

Очень жаль, так как снимать ЯМетрику совсем не хочется 😕. Спасибо.

ps написал в службу поддержки, может подскажут что-то.

DiAksID
На сайте с 02.08.2008
Offline
218
#7

попробуйте код метрики вызывать по window.onload, или в $(document).ready вставьте, если JQuery используете. метрика может слегка поругаться, но работает на 100% и в таком варианте.

хотя более приличным вариантом будет запуск скрипта метрики заведомо после отработки всех скриптов CMS, это сложнее , но не на много (надо будет, видимо, флаг какой-н создать и отслеживать по таймауту).

ну а самый лучший вариант - всё же отловить конфликт скриптов...

show must go on !!!...
P
На сайте с 06.01.2009
Offline
592
#8

[umka], DiAksID- спасибо большое.

Оказывается:

без установки Я.Метрики - нормально кнопка "назад" браузера работает только в Opera и Mozilla. В Maxton, Chrome, IE - данные отбора сбрасываются (как будто юзер пришел на страницу впервый раз).

с установкой Я.Метрики - при нажатии кнопки "назад" в любом браузере сбрасываются данные отбора.

Это что то меняет? Подскажите, пожалуйста.

DiAksID
На сайте с 02.08.2008
Offline
218
#9

параметры отбора через сеcсию передаются или как? если через сессию - попробуте для эксперимента передавать сессию не через куки, а через get. и кстати, авторизация юзверя то же сбрасывается?

P
На сайте с 06.01.2009
Offline
592
#10
DiAksID:
параметры отбора через сеcсию передаются или как? если через сессию - попробуте для эксперимента передавать сессию не через куки, а через get. и кстати, авторизация юзверя то же сбрасывается?

Авторизации юзверя нет в принципе.

С сессиями я уже всю голову сломал, ничего не получается 😕

Так как форма отбора, превью товаров и пагинация выводится Аяксом (если правильно понял jQuerry).

Уже убрал Я.Метрику и пробую сделать возможность при нажатии кнопки "назад" загрузки предыдущих данных - т.е. условия отбора, номер страницы.

Но, проблема, не сделать даже если в пагинации юзер выбрал страницу "7" например, потом нажал "назад" - так вообще перекидывает на предыдущий урл (это логично, но не справиться с проблемой).😒

ps я так понимаю задача идентифицировать нажал ли он кнопку "назад" или просто выбрал другую страницу в пагинации..а вот идентифицировать нажатие не знаю как.

ps2 Файл load.php в нем форма подбора товаров, вывод превью товаров и пагинация. Файл load подгружается функцией, которая в него передает данные о номере страницы и выбранных условиях отбора (jQuerry считывает инфо что выбрал юзер в форме). Я нубски говорю, но первый раз столкнулся с аяксом. Так вот при нажатии кнопки назад - страница перезагружается, а значит ни page ни uslovie не заданы.

ps3 понимаю что нужно засунуть куда то урл страницы, её page и uslovie чтобы при нажатии "назад" эти данные передавались в load.php

Вообще реально это сделать?

Страница не перезагружается, а только меняется контент внутри неё. При нажатии кнопки "назад" - соответственно не страница перезагружается, а только контент возвращается в предыдущий вариант. А то может это не реально, а?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий