Я понимаю, что могу сделать что-то вроде скрипта Google analytics. Они работают с javascript для сбора данных и отправки их на заданный URL. Но я хочу, чтобы он обошелся без ajax или REST API.Отслеживание скрипта как аналитика
Что я нашел до сих пор:
<script type="text/javascript">
var statsPage = 'http://www.uw-url.be/process.php';
var stats = {
page: location.href,
browser: 'ie',
ip: '127.0.0.1',
referral: 'google.com?search=test'
};
var params = $.param(stats);
alert(statsPage+'?'+params);
</script>
Предупредительного сообщение дает все, что нужно, но проблема в том, как я могу отправить эти данные в statsPage URL? Я нашел небольшое решение в Интернете для этого, но я не знаю, это нормально ... Может быть, есть лучшее решение для этого, но я не знаю ... Я слушаю вас, ребята!
$('<img>', {
src: statsPage + '?' + params
}).appendTo('body').remove()
Существует что-то еще ... Если я смотрю на Analytics JavaScript-код это всего другой сценарий. Может ли кто-нибудь объяснить мне, как это работает?
Пример здесь:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-49578310-1', 'auto');
ga('send', 'pageview');
</script>
Смысл всего этого в том, что каждый может использовать это на своем веб-сайте. С API AJAX или REST невозможно просто интегрировать его. Никто не может работать с этим.
Для моего первого опубликованного скрипта я также использую jquery() для этого. Сценарий Google Analytics нет.
EDIT
У меня есть построить новый код на основе ответа от Peter G. Я не нужно JQuery для этого. Является ли этот код достаточно безопасным для использования? Я написал функцию для р вара:
function ca(c,o,n,t,e,t,u){return p={type:c,userid:o,gender:n}}
ca("pageview", "1", "male");
Всего сценарием ниже:
<script type="text/javascript">
var statsPage = 'http://www.my-url.com/response.php';
function ca(c,o,n,t,e,t,u){return p={type:c,userid:o,gender:n}}
ca("pageview", "1", "male");
var params = Object.keys(p).map(function(k) {
return encodeURIComponent(k) + '=' + encodeURIComponent(p[k])
}).join('&')
const req = new XMLHttpRequest();
//req.addEventListener('load' /*callback after req is complete*/);
req.open('GET', statsPage + '?' + params);
req.send();
req.onreadystatechange = function() {
if (req.readyState == XMLHttpRequest.DONE) {
alert(req.responseText);
}
}
</script>
Как вы можете видеть, я скрыл addEventListener здесь. В чем разница, чтобы использовать это с или без этого?
Также просто хедз-ап с тех пор, как вы, кажется, здесь новые, если это поможет вам не забудьте нажать зеленую галочку, чтобы принять ее. Вы получите несколько баллов (2) за это. –
Если я использую ваш последний код с константой req в начале, я думаю, что мне нужно использовать jquery.param для сериализации параметров? Или можно получить/опубликовать массив params без jquery? – Brecht27
Вы можете сериализовать параметры без jQuery. Сериализация просто выводит их в формат URL, например «example.com/page.html?param1=value1¶m2=value2» (часть после «?» Имеет формат URL). Для получения этого форматирования используйте encodeURIComponent (string). –