외부 GA라이브러리가 올라올때까지 기다린후에 이벤트를 전송해야 했다.
동작의 목표는
1) CDN에서 GA스크립트를 로딩될때까지 기다린후,
2) ga객체의 메서드를 1회만 호출하는것.
setInterval로 2초동안 ga가 불러와졌는지 주기적으로 확인후.. 올라오지 않았다면 return
setTimeout으로 10초후에 Interval이 끝나도록 했다.
익명함수 안에서 scope를 유지하게끔 클로저 패턴을 사용해봤다..
var ckGaInterval = setInterval(
(function(){
var firstCall = true
return function(){
try{
ga //외부 라이브러리의 객체
}catch(e){
return
}
if(firstCall){
var run = (function(){
console.log(ga) //ga가 올라오고 최초 1회만 실행
})()
}
firstCall = false
}
})()
, 2000);
setTimeout(function(){
clearInterval(ckGaInterval);
}, 10000);
'Today I learned' 카테고리의 다른 글
2021 04 30 - 티스토리 최근 3개월 포스팅여부 가져오기 (작성중) (0) | 2021.04.30 |
---|---|
2021 학습목록 (0) | 2021.04.29 |
2021 04 23 - sqlBooster JOIN JOIN JOIN (0) | 2021.04.23 |
2021 04 23 - SQL Booter COUNT의 비밀 (0) | 2021.04.23 |
2021 04 22 - SQL Booster : GROUP BY Holic (0) | 2021.04.22 |
댓글