2010-12-19 6 views
1

Meebo/Wibiyaバーのような外部サイトに追加されるプラグインに取り組んでいます。私はファイルのバージョンを調べる方法を探しています。私が達成したい何ウェブサイトのプラグインをバージョン管理する(Wibiya bar、Meebo barなど)

  • ウェブサイトは自分のサイトへ<script>の数行を追加する必要があります。
  • 自分のコードを変更することなく、使用しているjsファイルをサイレントにアップグレードすることができます。
  • 私は別のウェブサイトに異なるjsファイルを提供することができます。
  • JSファイルは変更されない限りキャッシュされます。
  • A/Bテストを実行できます(1つのウェブサイトに2つのJSファイルを読み込み、1人のユーザーごとにランダムに選択します)。

どのようにこれらの目標を達成することができますか?あるいは、できるだけ多くの人がいますか?

+0

2番目と4番目の箇条書きが互いに競合しています。ほとんどのサードパーティ製のJSプラグインは、キャッシュでかなり短い期限切れ時間を使用することでこれを処理します。それでもキャッシュすることはできますが、期限切れのキャッシュをやりたくはありません。 24時間はサードパーティのスクリプトに共通の価値です。 – Ian

答えて

0

私の頭の上には、次のようなものが動き出すはずだと思います。

あなたはHTTPリファラーを使用することもできますが、それは完全に ではありません。次に、このようにはJavaScriptを少し埋め込むために、クライアント をGoogleアナリティクスが何をコピーしてもらう:あなたの最初の2点を満たす必要があります

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>タグを作成することにより、スクリプトはサーバからより多くの スクリプトを読み込むことができます。