0

这是我的情况

我正在创建一些从 CDN 加载 JavaScript 的网站,例如 Google/jscdn.com。但其中一些在中国被完全封锁。但我的访客中有 50% 来自中国,其他来自其他国家。如果特定源被阻止,是否可以再加载一个源?

例如,如果googleapis.com被阻止,我将加载从lib.sinaapp.com哪个可以从中国访问。我想按给定的顺序加载它们:googleapis.com先尝试,然后lib.sinaapp.com

没有服务器端代码可以做到这一点吗?

谢谢

4

2 回答 2

0

您可以使用 cdn 后备技术。

例子:

<script src="//ajax.aspnetcdn.com/ajax/jquery/jquery-2.0.0.min.js"></script>
<script>window.jQuery || document.write('<script src="js/jquery-2.0.0.min.js">\x3C/script>')</script>

有一篇关于这个的好文章。

于 2014-06-12T23:43:16.320 回答
0

我的建议是使用像RequireJSYepNope这样的 JavaScript 文件加载器。

它们允许您动态加载 JavaScript 文件,并且您可以控制何时加载文件。

以下是使用 YepNope 的简单实现:

//assuming that your JavaScript file is script.js
//put this flag in both script.js files
var scriptLoaded = true;

//put this in your main JS file
yepnope([{
  load: 'http://googleapis.com/123/script.js', //load this one first
  complete: function () {
    if (!scriptLoaded) {
      yepnope('http://lib.sinaapp.com/123/script.js');  //if not already loaded, load this file
    }
  }
}]);
于 2014-06-12T23:48:51.140 回答