inlanger
@inlanger
Django программист

В какой момент времени записывать координаты клика на ссылку?

Есть задача — создать карту кликов(Heat map) для движка. Насчет ее вывода вроде как вопросов нет, сейчас довольно много средств для этого. Но все они работают с заранее подготовленными данными. Не совсем ясно как эти данные получать. При клике на ссылку юзер переходит на новую страницу, и если повесить на событие click отправку координат клика(ajax) то этот запрос не успеет выполнится, то есть код типа такого работать не будет:

$("a").click(function(e){<br>
	$.post("/ajax/", { "y": e.pageX, "x": e.pageY });<br>
});


Да и ждать каждый раз успешного ответа о завершении запроса не очень правильно.
  • Вопрос задан
  • 3183 просмотра
Пригласить эксперта
Ответы на вопрос 5
creage
@creage
Можно добавить приложение во фрейме, а постить клики в top — старо, и неспортивно.

Куки, или localStorage — разве не справятся? Данные никуда не денутся при переходе. Прочитали — почистили, ждем следующей записи. Куки можно читать на сервере, но если их будет много — гонять их туда-сюда накладно. А localStorage не везде доступен.

Вариантов немало, на самом деле.
Ответ написан
Комментировать
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Не совсем ответ на вопрос, но может даст пищу для размышлений. При установке кода яндекс.метрики с включенной картой кликов раньше было предупреждение о том, что при включении данной опции будет пауза между кликом и переходом по ссылке в 0,3 секунды. Видимо там всё-таки отправляют данные (либо может динамически создают картинку с урлом, в котором кодируют данные — не суть). А вообще есть же скрипты с подобной функциональностью — та же Яндекс.метрика — её расковырять не пробовали?
Ответ написан
Комментировать
sajgak
@sajgak
Если нет желания задерживать пользователя на странице до получения ответа от сервиса учета кликов (он на самом деле так долго возвращает ответ, что пользователь может заметить задержку?), то можете добавлять координаты клика в параметры принимающей страницы и уже там обрабатывать информацию, но имхо профит милисекундный, а усложнять логику страниц обработкой сторонней информации как то совсем не верно
Ответ написан
Комментировать
rekzi
@rekzi
Web-разработчик
Может такой вариант: ко всем атрибутам href тега «а» добавить символ "#" с чем-то вроде «url=», а какой-либо функцией проверять изменение url и отправлять пользователя по ссылке через тайм аут. Функция по click успешно сможет выполниться.
Ответ написан
rmaksim
@rmaksim
попробуй на mousedown — до mouseup (соотв. до click) вполне успевает все отправиться
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы