2010-12-19 3 views
1

Meebo/Wibiya 바와 같은 외부 사이트에 추가되는 플러그인 작업 중입니다. 내 파일의 버전을 확인하는 방법을 찾고 있습니다.웹 사이트 플러그인 버전 관리 (예 : Wibiya bar, Meebo bar)

내가 달성하고자하는 것 :

  • 웹 사이트는 자신의 사이트에 <script>의 몇 줄을 추가 할 수 있습니다.
  • 코드를 수정하지 않고도 사용하고있는 js 파일을 자동 업그레이드 할 수 있습니다.
  • 다른 웹 사이트에 대해 서로 다른 js 파일을 제공 할 수 있습니다.
  • JS 파일은 변경되지 않는 한 캐시됩니다.
  • A/B 테스트를 수행 할 수 있습니다 (예 : 단일 웹 사이트에 2 개의 JS 파일을로드하고 각 방문자별로 무작위로 선택).

이러한 목표를 달성하려면 어떻게해야합니까? 아니면 가능한 한 많은 사람들이?

+0

두 번째 및 네 번째 글 머리 점이 서로 충돌합니다. 대부분의 타사 JS 플러그인은 캐시에서 매우 짧은 만료 시간을 사용하여이를 처리합니다. 캐시 될 수는 있지만 오래 만료 된 캐시를 원하지는 않습니다. 24 시간은 타사 스크립트의 공통 가치입니다. – Ian

답변

0

내 머리 꼭대기에서 나는 다음과 같은 것이 움직이게해야한다고 생각합니다.

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> 태그를 생성하여 서버에서 스크립트를 더로드 할 수도 있습니다.