사용 을 포함 하는 방법에 대한 Google 의 기존 지침 입니다 . 따라서 브라우저가 일부 코드가 실제로 실행될 때까지 외부 JavaScript 라이브러리를 비동기 적으로로드 하더라도 페이지로드는 여전히 차단됩니다. 이후의 비동기 명령 은 직접 사용하지 않지만 페이지로드를 차단할 수도 있습니다.ga.js
document.write()
document.write()
document.write()
insertBefore
그러나 Google은 캐시 max-age
를 86,400 초로 설정합니다 (1 일이며 공개로 설정 되어 프록시에도 적용 가능). 따라서 많은 사이트가 동일한 Google 스크립트를로드하기 때문에 JavaScript는 종종 캐시에서 가져옵니다. 그래도 캐시 된 경우에도 ga.js
새로 고침 버튼을 클릭하기 만하면 브라우저에서 변경 사항에 대해 Google에 묻는 경우가 많습니다 . 그런 다음 ga.js
아직 캐시되지 않은 경우와 마찬가지로 브라우저는 계속하기 전에 응답을 기다려야합니다.
GET /ga.js HTTP / 1.1
호스트 : www.google-analytics.com
...
수정 된 경우 : 2009 년 6 월 22 일 월요일 20:00:33 GMT
캐시 제어 : max-age = 0
HTTP / 1.x 304 수정되지 않음
최종 수정 : 2009 년 6 월 22 일 월요일 20:00:33 GMT
날짜 : 2009 년 7 월 26 일 일요일 12:08:27 GMT
캐시 제어 : max-age = 604800, 공개
서버 : Golfe
참고 것을 많은 사용자가 뉴스 사이트, 포럼 및 블로그 다시로드를 클릭 그들은 이미 구글로부터의 응답이 수신 될 때까지 많은 브라우저 블록을 만들고, 브라우저 창에 열려 . SO 홈 페이지를 얼마나 자주 다시로드합니까? Google Analytics 응답이 느리면 이러한 사용자는 즉시 알 수 있습니다. ( 스크립트 를 비동기식으로로드하기 위해 인터넷에 게시 된 많은 솔루션 이 있으며 ga.js
, 특히 이러한 종류의 사이트에 유용하지만 Google의 업데이트 된 지침보다 더 이상 좋지 않을 수 있습니다.)
자바 스크립트가로드되고 실행되면 웹 버그 (추적 이미지)의 실제로드는 비동기 적이어야합니다. 따라서 페이지에서를 사용 하지 않는 한 추적 이미지로드가 다른 것을 차단해서는 안됩니다body.onload()
. 이 경우 웹 버그가 즉시로드되지 않으면 다시로드를 클릭하면 If-Modified-Since
위에서 설명한대로 브라우저가 스크립트를 다시 요청하기 때문에 실제로 상황이 악화됩니다 . 다시로드 하기 전에 브라우저는 웹 버그만 기다리고 있었지만 다시로드 를 클릭 한 후에 는 ga.js
스크립트에 대한 응답도 필요합니다 .
따라서 Google Analytics를 사용하는 사이트는body.onload()
. 대신 jQuery의 $ (document) .ready () 또는 MooTools의 domready event 와 같은 것을 사용해야합니다 .
Google Analytics가 데이터를 수집하는 방법을 설명 하는 Google의 기능 개요를 참조하십시오 . , 추적 코드 작동 방식 포함 . (이는 또한 Google이 자사 쿠키의 콘텐츠를 수집한다는 사실을 공식화합니다. 즉, 방문하는 사이트의 쿠키입니다.)
업데이트 : 2009 년 12 월 Google은 비동기 버전을 출시 했습니다 . 위의 내용은 모든 사람에게 확실하게 업그레이드하라고 알려야하지만 업그레이드로 모든 문제가 해결되지는 않습니다 .