Для сайта электронной коммерции мы создаем объект регистрации данных. Для этого нам нужно создать веб-сессии. При создании мы, кажется, генерируем много дубликатов. В качестве небольшого теста мы строим небольшой фрагмент кода. Этот код, однако, все еще дает много дубликатов.
<script>
(function () {
var urlEndpoint = 'https://<url>/<endpoint>';
var createXmlHttpRequest = function (url, settings) {
var request = ('XMLHttpRequest' in window) ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); // eslint-disable-line no-undef
request.open('POST', url);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send((settings.data || ''));
request.onload = function () {
if (request.status >= 200 && request.status < 300 && typeof settings.callback === 'function') {
settings.callback('uuid=' + JSON.parse(request.response).uuid + '×tamp=' + JSON.parse(request.response).timestamp);
}
}
};
createXmlHttpRequest(urlEndpoint + '?getuuid=1&' + (new Date()).getTime(), {
callback: function (data) {
createXmlHttpRequest(urlEndpoint + '?' + (new Date()).getTime(), {data: data})
}
})
})();
</script>
что мы делаем: - получаем uuid из бэкэнд-скрипта через сообщение - передаем этот uuid обратно в другой бэкэнд-скрипт и сохраняем его в базе данных
при этом, мы получаем много дубликатов во втором бэкэнд-вызове. Это не имеет никакого смысла для меня, но, возможно, кто-то может пролить свет и помочь нам.
Это, кстати, веб-сайт с высоким трафиком c с более чем 2М просмотром в день.
Также: второй вызов для сохранения uuid предназначен для тестирования. Это будет удалено, и мы будем использовать uuid во внешнем интерфейсе