Zeptoに相当するjQuery.getScript()は何ですか?

Zeptoに相当するjQuery.getScript()は何ですか?両方のライブラリでJavaScriptファイルを動的に読み込む必要があります。

3

3 答え

これはzepto.jsに追加されました!

;(function ($) { 
    $.getScript = function(src, func) {
        var script = document.createElement('script');
        script.async = "async";
        script.src = src;
        if (func) {
           script.onload = func;
        }
        document.getElementsByTagName("head")[0].appendChild( script );
    }
})($)
7
追加された
それはfnにはないでしょう。また、プラグインを作成しているので、Zeptoの機能を使用することで簡単にプラグインを作成できます。
追加された 著者 Brian Nickel,
理論的には、要素の追加や属性の設定などに$()を使用するのを避ける方が高速で、メモリーを節約できるはずです。だから、私はこれを編集しました。
追加された 著者 Luke Stanley,
私は非同期パラメータを知らない、または必要としないので、私はそれをコメントしました。 Webからファイルシステムを読み込んでいるのであれば、速度向上のために調べるでしょう。
追加された 著者 Luke Stanley,
;(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 から部分的にリッピングされます。

2
追加された

私は同じことを探していましたが、標準の$ .ajax呼び出しが 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));

これは、ajaxリクエストに任意のオプションを渡すために options (3rd)パラメータを追加した以外は、jQueryバージョンと同じ構文で動作するはずです。

0
追加された
このアプローチの制限は、クロスドメイン要求を行うことができないことです。サードパーティのスクリプトは失敗します。
追加された 著者 Brian Nickel,