Я строю AngularJS приложений, которые имеют общий заголовок со ссылками на каждый из приложения:Track Ссылки Использование событий - гонки Условия
<a href="https://app1.company.com">App1</a>
<a href="https://app2.company.com">App2</a>
Каждое приложение работает на своей подобласти и когда пользователь нажимает на ссылку на переадресация заголовка - страницы в это приложение.
Мне нужно отслеживать действия пользователей со ссылками, например. onClick с Omniture (но проблема также относится к Google Analytics). Когда я добавить событие OnClick, который вызывает функцию, чтобы отправить события в Omniture, например:
<a href="https://app1.company.com" ng-click="trackLink('header-app1')">App1</a>
TrackLink() является функцией службы AngularJS, краткая реализация:
trackLink: function (eVar8Code) {
s = this.getSVariable(s);
s.eVar8 = eVar8Code;
s.prop28 = s.eVar8;
this.sendOmnitureMessage(s, send, false);
return s;
},
функция выполняется асинхронно и сразу возвращается. Затем поведение стандартной ссылки срабатывает: страница перенаправляется на URL-адрес, определенный в атрибуте «href». Новая страница загружена очень быстро (около 70 мс), но AJAX запрос в Omniture не был выполнен: все это асинхронно.
Я считаю, что использование событий для ссылок неверный подход, скорее следует использовать параметры запроса, например .:
<a href="https://app1.company.com?iLink=header-app1">App1</a>
, но это трудно убедить маркировочные парней.
Что такое хорошая практика отслеживания событий по ссылкам?
Вы можете показать, что выглядит 'sendOmnitureMessage'? –