Я пытаюсь получить тег google gpt, чтобы обновлять максимальное количество раз, если при загрузке он возвращается пустым.Как сделать этот javascript async во время работы цикла?
<script type="text/javascript">
googletag.cmd.push(function() {
var slot1 = googletag.defineSlot("/gtpConfigStuff",[300,600],"gtpConfigStuff")
.addService(googletag.pubads())
.setTargeting("pos", "BTF")
.setTargeting("URL", encodeURIComponent(window.location));
googletag.enableServices();
googletag.display("gtpConfigStuff");
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
var tries = 0;
while (tries<=2 && event.isEmpty==true) {
//googletag.pubads().refresh([slot1]);
//setTimeout(function() {
tries++;
console.log(tries);
//}, 1000);
}
console.log("done");
});
});
</script>
С вышеуказанными строками, прокомментированными, он работает так, как должен. С вызовом функции обновления он будет работать бесконечно. SetTimeout, который, как я думал, может позволить завершить обновление.
Спасибо.
Если я правильно понять, добавив #setTimeout нарушает функциональность. Причина в том, что #setTimeout не работает, как вы думаете, - это * не * пауза. Вместо этого подумайте, как начать новый поток. См. Цикл и стек событий JS. –
oh ok. Тогда это не поможет. Если я удалю этот бит, он просто петли навсегда. – user1222303
t, вероятно, будет загружаться бесконечно, потому что googletag.pubads(). Refresh ([slot1]); вызывает событие slotRenderEnded, которое обновляет googletag.pubads, который вызывает событие slotRenderEnded, которое вызывает событие googletag.pubads, которое вызывает событие slotRenderEnded, которое обновляет googletag.pubads, который вызывает событие slotRenderEnded, которое обновляет googletag.pubads, который вызывает событие slotRenderEnded, которое обновляет googletag.pubads, который вызывает событие slotRenderEnded, где я собираюсь? – Jan