2011-12-19 51 views

回答

6

這個作品附加到zepto.js!

​​
+0

它不會在fn上。另外,由於您正在編寫插件,因此您可以通過使用Zepto功能進行簡化。 – 2012-07-02 06:12:20

+0

理論上,避免使用$()來追加元素或設置屬性等,應該更快,並且可以節省內存 - 這兩者在加載時都很重要。所以我就這樣做了,並添加了一些我已經添加的修改(現在在編輯評論中)。 – 2012-11-02 13:06:14

+0

我不知道或需要異步參數,所以我只是評論說出來。如果通過Web加載文件系統,我會研究它以提高速度。 – 2012-11-02 13:08:06

0

我一直在尋找同樣的事情,我發現,標準的$就調用將EVAL響應dataType === "script"時。我實現它作爲一個插件的Zepto像這樣:

(function ($) { 
    var getScript = function (url, callback, options) { 
      var settings = $.extend({ 
       'url': url, 
       'success' : callback || function() {}, 
       'dataType' : 'script' 
      }, options || {}); 
      $.ajax(settings); 
     }; 

    $.getScript = getScript; 
}($ || Zepto)); 

應該用相同的語法jQuery的版本可用,除了我添加了options(3)參數允許任意選擇Ajax請求傳遞。

+1

此方法的侷限性是您無法進行跨域請求。第三方腳本會失敗。 – 2012-07-02 06:09:25

2
;(function($){ 

    $.getScript = function (url, success, error) { 
     var script = document.createElement("script"), 
      $script = $(script); 
     script.src = url; 

     $("head").append(script); 
     $script.bind("load", success); 
     $script.bind("error", error); 
    }; 

})(Zepto); 

這部分從Zepto.ajaxJSONP撕掉。

相關問題