내 머리 꼭대기에서 나는 다음과 같은 것이 움직이게해야한다고 생각합니다.
API 키를 사용하여 원격 사이트를 식별 할 수도 있습니다. HTTP 리퍼러를 사용할 수도 있지만 완벽하지는 않습니다. 신뢰할 수 있습니다. 그런 다음, 다음과 같이 자바 스크립트의 약간을 포함하는 클라이언트 를 Google 웹 로그 분석이 무엇을 복사 얻을 : 첫 번째 두 점을 만족해야
var _edan_cfg = _edan_cfg || { };
_edan_cfg.apiKey = 'The-API-key-goes-here'; // Just in case you want it later.
(function() {
var e = document.createElement('script');
e.type = 'text/javascript';
e.async = true;
e.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www')
+ '.your-domain-name.com/some_sensible_path/'
+ encodeURIComponent(_edan_cfg.apiKey);
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(e, s);
})();
합니다.
서버 측에서는 들어오는 경로에서 API 키를 추출하고 키는 해당 사이트에서 말하는 사이트가 무엇인지 알려주므로 JavaScript를 적절하게 다시 보낼 수 있습니다. HTTP 캐싱 헤더를 사용하여 캐싱 제어를 시도 할 수 있습니다. 그것은 포인트 2와 3을 처리해야합니다.
마지막 요구 사항은 좀 더 흥미롭지 만 불가능한 것은 아닙니다. 다시 보내는 스크립트는 항상 복수 렌더링 또는 동작을 지원할 수 있으며 스크립트는 에 기반하여 어떤 동작을 생각할 수 있는지에 따라 동작을 선택할 수 있습니다. 스크립트는 위와 같이 더 많은 <script>
태그를 생성하여 서버에서 스크립트를 더로드 할 수도 있습니다.
두 번째 및 네 번째 글 머리 점이 서로 충돌합니다. 대부분의 타사 JS 플러그인은 캐시에서 매우 짧은 만료 시간을 사용하여이를 처리합니다. 캐시 될 수는 있지만 오래 만료 된 캐시를 원하지는 않습니다. 24 시간은 타사 스크립트의 공통 가치입니다. – Ian