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



我的情况是这样的

我正在创建一些网站,从CDN像Google/jscdn.com加载JavaScript。但其中一些在中国被完全屏蔽了。但我的访客中有50%来自中国,其他来自其他国家。如果某个特定的源被阻塞,是否可以加载更多的源?

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

是否有可能做到这一点没有服务器端代码?

谢谢

您可以使用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>

我的建议是使用JavaScript文件加载器,如RequireJSYepNope

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

相关内容

  • 没有找到相关文章

最新更新