パフォーマンスが気になる場合は、AngularJS などのフレームワークの使用を検討します。モジュール化されたコードを挿入できます。さらに良いことに、MVC を使用すると、ビューがモデルにバインドされるため、モデルを変更するとビューが自動的に更新されます。
また、クラス セレクターの使用を停止します。ID セレクターを使用します。彼らははるかに高速です。また、セレクターをプリロードすることも必要です (クラス セレクターを使用する場合でも)。そうすれば、DOM を 1 回だけ検索できます。
var ele = $('#elementId');
$(ele).doSomething();
このようにして、DOM 要素への参照を取得します。データ構造を使用して、すべての参照をグローバル スコープ外に格納できます。
var elementReferences = {}; //declaration
elementReferences.mainPage = {}; //use
elementReferences.mainPage.root = $('#mainPage'); //load the root div of a page segment
elementReferences.mainPage.title = $(elementReferences.mainPage.root).children('#title'); //load the title
elementReference.mainPage.form = $(elementReferences.mainPage.root).children('#form'); //load the form
今、あなたはこれを行うことができます:
$(elementReference.mainPage.form).whatever();
DOM で要素を検索する必要はありません。これは、大規模なアプリで特に役立ちます。
関数を document.ready 内に配置すると、フィドルに従って、document.ready 呼び出しの範囲内でのみその関数にアクセスできます。関数が必要なスコープ内で、必要に応じて関数を動的にロード/アンロードできるようにしたいと本当に思っています。
また、ほとんどの場合、関数と変数をグローバル スコープから削除し、それらを依存関係と使用法によって並べ替えられたコンテナーに配置します。これはオブジェクト指向プログラミング 101 です。別の開発者によって誤って上書きされる可能性があるグローバル スコープ内に多数の配列を配置する代わりに、それらをコンテナー内に配置します。
var arrays = {}; //create the object
arrays.whatever1 = [];
arrays.whatever2 = [];
明らかに、「配列」よりもわかりやすい名前が必要になるでしょう。関数は同じように機能します。
var ajax = {}; //ajax object
var ajax.get = function(){
};
var ajax.post = function(){
};
var ajax.delete = function(){
};
これにより、一般に、より再利用可能で保守が容易な、よりクリーンなコードが促進されます。実際に開発を開始する前に、アーキテクチャ全体を完全に文書化する仕様の作成にかなりの時間を費やしたいと考えています。あなたがそれを助けることができるなら、決して銃を飛ばさないでください. 全体像とすべてがどのように適合するかを徹底的に調査して計画することに時間を費やしてください。このようにすると、車輪の再発明に費やす時間が減ります。
これはグーグルによって開発されたものなので、かなり長い間存在するはずです。あなたがシステムのアーキテクチャを担当しているかどうかはわかりませんが、会社でパフォーマンス/再利用性が問題になっている場合は、検討する価値があります。ソフトウェア アーキテクチャとエンジニアリングに関して私が知っていることのほとんどについて、ウォークスルーを提供できれば幸いです。興味があればメッセージを送ってください。いつも喜んでお手伝いします!