에서 JS 파일 및 인라인 JS의 혼합을 등록 Yii2내가이 (가) <a href="https://developers.google.com/analytics/devguides/collection/analyticsjs/" rel="nofollow noreferrer">Google Analytics docs</a>에서 다음 등록하려고 해요 위해
$this->view->registerJs('
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga(\'create\', \'UA-XXXXX-Y\', \'auto\');
ga(\'send\', \'pageview\');
', View::POS_HEAD);
$this->view->registerJsFile(
'https://www.google-analytics.com/analytics.js',
[
'async'=>'async',
'position' => View::POS_HEAD,
]
);
그러나 등록 된 JS 파일은 Inline JS 이전에 나왔습니다. 스크립트가 주문을 존중할 수있는 방법이 있습니까?
AssetBundle과 'depends'프로토콜을 사용하려고 생각했지만 AssetBundle의 Inline JS에 대한 Yii2 문서에는 아무 것도 없습니다.
인라인 JS에 키를 줄 수는 있지만 슬프게도 'depends'프로토콜에는 클래스 이름이 필요합니다.
Analytics 구현 (async)의 특별한 경우에 위치가 중요합니까? 그냥 물어 보는 건데. – Ravenous
@Ravenous 그게 좋은 질문입니다! 나는 모른다. .. 나는 그것이 그것을 가지지 않으면 나는 단지 놓고 갈 것이다 고 생각한다. 그러나 그것은 나를 크게 괴롭힌다 :) – Arth
그것은 정말로 중요하지 않아야한다. 논리적으로 말하면 브라우저는 다음에 나오는 스크립트가로드 될 때까지 "window.ga"가 무엇인지 알지 못합니다. – Ravenous