У меня есть страница, которая запускает вызов ajax при загрузке
$(window).load(function() {
updateDeliverySlots();
});
У меня также есть javascript Google Tag Manager в верхней части моего тела (я знаю, что текущее предложение состоит в том, чтобы поместить это в раздел head, но у нас нет обновил код еще и не думаю, что это источник проблемы).
<body>
<!-- Google Tag Manager -->
<noscript>
<iframe src="//www.googletagmanager.com/ns.html?id=XXXX" height="0" width="0" style="display:none;visibility:hidden">
</iframe>
</noscript>
<script>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';
j.async=true;
j.src='//www.googletagmanager.com/gtm.jsid='+i+dl;f.parentNode.insertBefore(j,f);
})
(window,document,'script','dataLayer','XXXX');
</script>
<!-- End Google Tag Manager -->
....
</body>
У меня проблема с одним из вызовов, сделанных script, включенными в тэг GTM. Этот script отправляет запрос третьей стороне. Если запрос не может подключиться по какой-либо причине (например, сервер не работает), моя функция updateDeliverySlots() (и вызов ajax в нем) не запускается до истечения времени запроса (60 секунд). Я также обнаружил, что страница по-прежнему "загружается" (в соответствии с значками браузера).
Есть ли что-то в моей реализации GTM, что я делаю неправильно? Насколько я понимаю, все, что срабатывало на обратной стороне Google Tags, должно быть асинхронным и не имело бы никакого отношения к "готовности" к странице.