如果一个源被阻止,如何加载一个或多个JS / CSS文件?

时间:2014-06-12 23:38:32

标签: javascript google-cdn

这是我的情况

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

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

是否可以在没有服务器端代码的情况下执行此操作?

由于

2 个答案:

答案 0 :(得分: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>

有一篇关于this的好文章。

答案 1 :(得分:0)

我的建议是使用JavaScript文件加载程序,例如 RequireJS YepNope

它们允许您动态加载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
    }
  }
}]);