<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      利用jQuery的deferred異步按順序加載JS文件

        前段時間看了阮一峰jQuery的deferred對象詳解一文,對jQuery中的deferred的用法了一些了解,今天看到園子里的一篇文章:關于重構JS前端框架的失敗經驗(順便懷念那些死去的代碼),于是把我之前寫的一個利用jQuery的deferred異步按順序加載JS文件方案分享出來,歡迎指正。

        如果你現在對jQuery中的deferred還不了解,強烈建議你看一下阮一峰jQuery的deferred對象詳解一文。

        加載JS文件的代碼如下:

      /*
       Loading JavaScript Asynchronously
       loadScript.load(["a.js", "b.js"]);
      */
      
      var loadScript = (function() {
          var loadOne = function (url) {
              var dtd = $.Deferred();
              var node = document.createElement('script');
              node.type = "text/javascript";
              var onload = function(){
                  dtd.resolve();
              };
              $(node).load(onload).bind('readystatechange', function(){
                  if (node.readyState == 'loaded'){
                      onload();
                  }
              });
              document.getElementsByTagName('head')[0].appendChild(node);
              node.src = url;
              return dtd.promise();
          };
      
          var load = function(urls) {
              if(!$.isArray(urls)) {
                  return load([urls]);
              }
              var ret = [];
              for (var i = 0; i < urls.length; i++) {
                  ret[i] = loadOne(urls[i]);
              };
              return $.when.apply($, ret);
          }
      
          return {
              load: load
          };
      })();

        代碼比較簡單,這里就不解釋了,下面給個調用示例。

        例如項目中有兩個JS文件:a.js和b.js,代碼如下:

        a.js:

      var a = "i am in a.js";
      var b = "i am in a.js";

        b.js:

      var a = "i am in b.js";
      var b = "i am in b.js";

        如果我們想先載入b.js,后載入a.js,示例代碼如下:

      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>Loading JavaScript Asynchronously</title>
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"type="text/javascript"></script>
      <script src="jls.js" type="text/javascript"></script>
      </head>
      <body>
          <script type="text/javascript">
              loadScript.load(["b.js", "a.js"]).done(function() {
                  test();
              });
      
              function test(){
                  console.log("var a = " + a + " , var b = " + b);
              }
          </script>
      </body>
      </html>

        結果如下:

        這里我們可以看到,b.js中定義的變量被a.js中的覆蓋了。

        轉到Elements面板,我們可以看到b.js和a.js被順序地加到了head中:

        對此類問題,歡迎大家分享自己的方案。

      posted @ 2013-03-13 17:45  artwl  閱讀(5447)  評論(9)    收藏  舉報

      個人簡介

      var ME = {
      	"name": "土豆/Artwl",
      	"job": "coding",
      	"languages": [
      		"JS", "HTML",
                      "CSS", "jQuery"
      		"MVC",".NET",
      		"設計模式"
      	],
      	"hobby": [
      		"閱讀", "旅游",
      		"音樂", "電影"
      	]
      }
      
      TOP
      主站蜘蛛池模板: 最近中文字幕免费手机版 | 中文字幕日韩精品有码| 日韩乱码人妻无码中文字幕视频| 久久精品国产亚洲AⅤ无码| 成人无码潮喷在线观看| 麻豆av一区二区天美传媒| 久久99精品久久久久久| 亚洲一区在线观看青青蜜臀| 中文字幕人成无码免费视频| 99久久久国产精品免费无卡顿| 毛葺葺老太做受视频| 国内精品久久久久影院网站| 国产欧美日韩精品丝袜高跟鞋| 国产精品视频全国免费观看| 国产蜜臀一区二区三区四区| 国产精品免费AⅤ片在线观看| 丰满少妇内射一区| 自偷自拍亚洲综合精品| 精品夜恋影院亚洲欧洲| 免费无码肉片在线观看| 久久99日韩国产精品久久99| 无码熟妇人妻AV影音先锋| 永宁县| 欧美牲交a欧美牲交aⅴ图片| 欧美一本大道香蕉综合视频| 中文字幕无码av波多野吉衣| 毛片网站在线观看| 一色桃子中出欲求不满人妻| 又大又紧又粉嫩18p少妇| 精品无码国产不卡在线观看| 熟妇人妻久久精品一区二区| 亚洲精品中文字幕二区| 人妻在线无码一区二区三区| 精品日本乱一区二区三区| 国产在线精品成人一区二区| 无码全黄毛片免费看| 中文字幕国产精品日韩| 精品熟女日韩中文十区| 中文字幕乱码一区二区免费| 亚洲一区二区国产av| 少妇一边呻吟一边说使劲视频 |