我正在开发一个插件,该插件将添加到外部站点,例如 Meebo/Wibiya 栏。我正在研究如何对我的文件进行版本控制。
我想要实现的目标:
- 网站只需添加几行
到他们的网站。
- 如果我选择的话,我将能够以静默方式升级他们正在使用的 js 文件,而无需他们修改代码。
- 我将能够为不同的网站提供不同的 js 文件。
- JS 文件将被缓存,除非它们发生更改。
- 我将能够执行 A/B 测试(即为单个网站加载 2 个不同的 JS 文件,为每个访问者随机选择)。
我怎样才能实现所有这些目标?或者至少尽可能多?
在我的脑海中,我认为像下面这样的事情应该会让事情发生。
您可以使用某种 API key 来识别远程站点,你也可以使用 HTTP 引用,但这并不完全可靠的。然后,复制 Google Analytics 的做法并获取客户像这样嵌入一点 JavaScript:
var _edan_cfg = _edan_cfg || { };
_edan_cfg.apiKey = 'The-API-key-goes-here'; // Just in case you want it later.
(chức năng() {
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 key ,该键告诉您正在与哪个网站交谈,以便您可以发回无论 JavaScript 是否合适。您可以使用 HTTP 缓存 header 尝试控制缓存。那应该照顾第二点和第三点。
最后一个要求有点有趣,但没有什么不可能。您发回的脚本始终可以支持多种渲染或行为,脚本还可以根据无论你能想到什么条件。该脚本还可以加载更多通过创建更多
从您的服务器脚本标签如上。
Tôi là một lập trình viên xuất sắc, rất giỏi!