Я пытаюсь отслеживать события, когда на моем сайте нажимаются ссылки, с помощью метода, аналогичного следующему.
<a href="/example" class="track">Example</a>
<script type="text/javascript">
jQuery(function($) {
// track clicks on all anchor tags that require it
$('a.track').live('click', function(e) {
// send an AJAX request to our event tracking URL for the server to track it
$.get('/events/track', {
url: $(this).attr('href'),
text: $(this).text()
});
});
});
</script>
Проблема, с которой я столкнулся, заключается в том, что загрузка новой страницы прерывает запрос AJAX, и поэтому иногда эти события не отслеживаются. Я знаю, что в Google Analytics есть _trackPageview
функция, которую можно прикрепить к событиям onclick, и это не кажется проблемой для этого. Мне интересно, чем их вызов отличается от моего, потому что я вижу это состояние гонки, а GA - нет. например.:
<a href="/example" onclick="javascript:pageTracker._trackPageview('/click/example');">Example</a>
Обратите внимание, что меня не беспокоит результат запроса AJAX ... Я просто хочу, чтобы он проверял связь с сервером с тем фактом, что произошло событие.
(Кроме того, я ожидаю получить хотя бы один ответ, в котором говорится, что нужно просто отслеживать загрузку новой страницы со стороны сервера, а не со стороны клиента. Это неприемлемый ответ на этот вопрос. Я ищу что-то вроде того, как функция Google Analytics trackPageview
работает с событием клика тегов привязки независимо от загрузки новой страницы.)