Чтобы получить наилучшие результаты, вы должны изменить две вещи в своем подходе
- Используйте
onmousedown
вместо click
- таким образом, у вас есть несколько дополнительных миллисекунд для выполнения запроса на отслеживание, иначе браузер может вообще не устанавливать соединение с вашим трекером, поскольку он уже перемещается от исходной страницы , Недостатком является то, что вы можете получить некоторые ложноположительные значения, поскольку пользователь, нажимающий кнопку, может не завершить щелчок (например, удерживает кнопку мыши нажатой и перемещает курсор от ссылки), но в целом это жертва, которую вы должны быть готовы сделать - учитывая лучшее качество отслеживания.
- Вместо вызова Ajax (
$.post('...')
) используйте средство предварительной выборки изображений (new Image().src='...'
). Тот факт, что трекер не является изображением, в данном случае не имеет значения, потому что вы все равно не хотите использовать получающееся «изображение», вы просто хотите сделать запрос к серверу. Ajax-вызов - это двустороннее соединение, поэтому оно занимает немного больше времени и может завершиться неудачей, если браузер уже уходит, но средство предварительной выборки изображений просто отправляет запрос на сервер, и на самом деле не имеет значения, возвращаете ли вы что-либо или нет.
Так что решение будет примерно таким:
<script>
$(document).ready(function() {
$("a").mousedown(function (){
new Image().src= "http://www.example.com/trackol.php?result=click";
});
});
</script>
<a href="http://www.google.com">out</a>