2

カスタム JavaScript ライブラリをエンド ユーザーの Web サイトに含める必要があるプロジェクトがあります。JavaScript トラッキングは Google Analytics のようなものだと考えてください。

他にどの JS ライブラリ/フレームワークが読み込まれるか、またはどのバージョンが読み込まれるかについては制御できません。

jQuery のイベント委任、セレクター、および AJAX 機能を活用できるようにしたいのですが、

  • ロードされる可能性のある他のライブラリや他のバージョンの jQuery と競合しない
  • エンド ユーザーが jQuery を個別に含めることを考える必要はありません。

したがって、すべての jQuery をローリングするのはやり過ぎのように思えますが、ここでも、イベント委任、セレクター、および AJAX が必要です。jQuery の sizzel エンジンは、サードパーティのライブラリに含めることができるように分割されており、小さな AJAX ライブラリがたくさんあることは知っていますが、優れたイベント委任サポートも必要です。さらに、近い将来、このライブラリを使用して重い DOM リフティングを行う必要があると予測しているため、jQuery の機能のほとんどが必要になることは間違いありません。

誰のコードも踏みにじらない方法で jQuery をカプセル化する方法について何か提案はありますか? また、これはどの程度お勧めですか?それは少し不自然に感じます。

また、それを別のライブラリにカプセル化するのに最適なワットは何ですか? これよりも良い方法はありますか?:

(function(window){
    window.myNamespace = {
        _jq:null,
        init: function(){
            // Include jQuery
            myNamespace.setJq();
        },
        setJq:function(){
            /*! jQuery v1.8.2 jquery.com | jquery.org/license */
            (function(a,b){function G(a){...}}) // <- minified jQuery
            // Stash a local copy of jQuery
            myNamespace._jq = jQuery;
            // Return $ and jQuery namespace
            $.noConflict(true);
        }
    }
})(window)

(jQuery が既にページに読み込まれており、使用しているバージョンを十分に理解している人のために、ライブラリのバージョンを jQuery なしで提供する予定です)

4

3 に答える 3

2

部分的にjQueryを見てください:https://github.com/mythz/jquip

于 2012-10-13T05:55:22.737 に答える
1

条件付きロードのドンはどうですか... $ が存在するかどうかをテストします。その場合は、スクリプトをロードしないでください。そうでない場合は、ロードします。

于 2012-10-13T06:22:50.567 に答える
0

次のパターンを使用して、jQuery が関数に渡されていることを確認し、それを問題なくローカル変数 $ にマップできます。

(function(window,$){ // $ をローカル jQuery 変数として使用

})(ウィンドウ、jQuery);

于 2012-10-13T07:15:42.950 に答える