0

パフォーマンスを最適化するために、1 つの JavaScript ファイルを使用して、作業中の Web サイトのすべてのページを処理しています。私が使用している基本的な構造は次のとおりです。

(function($) {

    // Shared functions ...

    // A function for every page
    function Page1() {
    }
    Page1.prototype = {
        init: function() {
            //...
        },
        //more functions
    };

    // more pages

    $(document).ready(function() {
        if ($('#page1uniqueidentifier').length) {
            var page1 = new Page1();
            page1.init();
        }
        // more pages
    }
}) (jQuery);

私は経験豊富な JavaScript プログラマーではないので、コードを構築するためのベスト プラクティスやさまざまな方法について多くのことを検索してきましたが、最終的にこれを選択しましたが、よくわかりません。いくつか質問があります。 :

  1. ページのインスタンスが 1 つしかない場合、プロトタイプを使用する価値はありますか? プロトタイプがどのように機能するかを理解していると思いますが、そこでは何のパフォーマンスも得られていません。ただし、異なるインスタンスが存在する場合、これらの関数はすべてのインスタンスで同じになるため、ベスト プラクティスとして使用しています。

  2. コードを構造化するより良い方法はありますか?

  3. init 関数の呼び出しをコンストラクター内に配置してから、new Page1() のみを呼び出す必要がありますか?

    function Page1() {
        this.init();
    }
    
    if ($('#page1uniqueidentifier').length) {
        new Page1();
    }
    
4

1 に答える 1

0

パフォーマンスを最適化するために、作業中のWebサイトのすべてのページを処理するために単一のJavaScriptファイルを使用しています

それは意味がありません。コードをファイルに分割してから、すべてのjsファイルを最小化/連結子を介して実行してパッケージ化する必要があります。

とにかく、あなたの質問に答えるために、

  1. 1つしかない場合、プロトタイプは何も購入しません。ただし、1つ以上使用する場合は、戻って変更しますか?さらに、プロトタイプを使用しても害はないので、学習のためにそれを行う方がよいでしょう。
  2. 実装されている機能に応じて意味のあるファイルを作成する必要があります。たとえば、オブジェクト定義を独自のファイルに分割します。そのため、そのファイルを見ると、そのオブジェクトのコードだけが表示されます。
  3. コンストラクター関数を持っているなら、あなたは本当にinitを必要としませんね?
于 2012-07-19T12:38:48.863 に答える