簡單檢測CDN鏈接是否有效


CDN鏈接經常是使用的。但是,CDN鏈接掛了怎么辦,因此,就要調用使用本站點的庫,那么怎么實現呢?

 

檢測CDN的jquery鏈接是否有效(這種方法比較簡單)

<script src="" type="text/javascript"></script>
<script>window.jQuery || document.write('<script src="js/jquery-2.1.1.min.js"><\/script>')</script>

 

那么,問題來了,假如我要檢測其他CDN呢?如使用bootstrap框架的js與css呢?

 

本人就想了一個比較簡單的方法(同步方式)

...
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script type="text/javascript" src="https://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
...

<script>
      //判斷cdn是否有效
      $.when(
          //同步方式發送請求
          $.ajax({
              url: "https://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css",
              async: false
          }),
          $.ajax({
              url: "https://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js",
              async: false
          })
          //如果鏈接失效,就寫入本地的鏈接
          ).fail(function() {
              $("link[href='https://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css']").after(" < link rel = 'stylesheet' href = 'css/bootstrap.min.css' > ");
              $("script[src='https://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js'").after(" < script type = 'text/javascript' src = 'js/bootstrap.min.js' > < \/script>");
          });
 </script>

 

使用requirejs加載(異步方式)

<!doctype html>
<html>
    <head>
        <title>requirejs</title>
        <meta charset="utf-8">
        <script data-main="js/main" src="js/require.js"></script>
    </head>
    <body>
        <span>requirejs</span>
    </body>
</html>

 

main.js

require.config({
    paths: {
        //配置cdn與本地jq
        jquery: ['http://cdn.bootcss.com/jquery/2.0.0/jquery.min', 'jquery-2.0.0.min'],
    },
    map: {
        //這個是require-css插件,即css.min.js
        '*': {
            'css': 'css.min' 
        }
    },
});

require(['jquery'], function($) {
    alert("jquery load");
});
//引入的寫法是插件寫法,直接在這里寫路徑
require(['css!../css/a.css'], function() {
    alert('stylesheet load');
});

 

 a.css

span{
    font-weight:bold ;
}

 

PS:學習了一下requirejs這個庫,原理是動態生成<script>標簽,這個庫比較適合管理引入過多的js庫,可以提高web前端頁面性能。(使用css就要引用require-css插件)

      如果引入js(或者css)比較少的話,就不必使用這個庫了。

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM