在我的頭頂,我認爲像下面這樣的東西應該讓事情發展。
您可以使用某種API密鑰來識別遠程站點,您也可以使用HTTP referer,但這並不完全可靠。然後,複製是谷歌Analytics(分析)確實並獲得客戶 嵌入的JavaScript的一點點像這樣:
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緩存 標題來嘗試控制緩存。這應該照顧 點二和三。
最後一項要求是有趣一點,但沒有不可能的。 您發回的腳本始終可以支持多個渲染或 行爲,腳本還可以根據您可以想到的任何條件選擇基於 的行爲。該腳本還可以通過創建更多<script>
標籤來從服務器加載更多 腳本。
您的第二個和第四個項目符號相互衝突。大多數第三方JS插件通過在其緩存上使用相當短的到期時間來處理此問題。它仍然可以被緩存,但是你不想做長時間的緩存。 24小時是第三方腳本的共同價值。 – Ian 2011-11-01 13:18:33