6

すべての Web ページに 3 つの js ファイルがあり、各 Web ページに対して呼び出す関数のセットを事前に定義しています。これらの関数をすべて新しい js ファイルに移動して、別の js ファイル内の他の関数を呼び出すことはできますか? http://code.google.com/p/rloader/でrloader について読みましたが、使用できるかどうかわかりません。

<script src="js/rootNameSpace.js"></script>
<script src="js/jquery-min.js"></script>
<script src="js/ui.js"></script>
<script src="js/form.js"></script>

<script type="text/javascript">
    console.dir(com);
    com.rela.form.helloWorld1();
    com.rela.form.helloWorld2();
</script>
4

3 に答える 3

1

はい。スクリプトタグの内容をパス「js/main.js」のファイルに移動してからスクリプトを追加した場合

<script src="js/main.js"></script>

他のスクリプトの後、関数を呼び出すことができます。外部スクリプトを含めることは、そのスクリプトのテキストをファイル内にインライン化することと同じです。

スクリプトは以前のスクリプトの内容を読み取ることができるため、ページに複数のスクリプトを配置することは、それらすべてを 1 つのファイルに連結することに似ています。つまり、他のスクリプトの下にスクリプトを追加すると、他のスクリプトのすべてを「見る」ことができます。

rloaderに関するご質問について

rloader は遅延読み込みを行い、必要なときにスクリプトを取り込みます。

遅延読み込みの詳細については、サイトから rloader について学ぶことができます(私はその専門家ではありません)。

実際に 1 ページに 4 つのスクリプトしかない場合は、rloader の使用をお勧めしません。そのやり過ぎ。より大きなプロジェクトを計画している場合は、それまたはより一般的なrequirejsを使用して、ページ全体でスクリプトを管理できます。

于 2013-02-28T14:14:32.227 に答える
0

コードを別々のファイルに入れる方が常に良いです (サイズと数が少ない限り)。これにより、ブラウザー$(document.ready) によってキャッシュできるようになり、ロードされていない他の dom 要素に対して安全に保つことができます。

次のようなものを作成します。

<script src="js/rootNameSpace.js"></script>
<script src="js/jquery-min.js"></script>
<script src="js/ui.js"></script>
<script src="js/form.js"></script>

<script src="js/pages/some-page.js"></script>

some-page.js

$(document).ready(function(){
    console.dir(com);
    //call to function form.helloWorld1 
    com.relais.form.helloWorld1();
    com.relais.form.helloWorld2();
});

より良いオプションは、ファイルを結合することです(各ページで共通の場合)。rootNameSpace.js、jquery-min.js、ui.js、form.js を common.js というファイルに入れます。これを行うには、 Google Closureを使用できます。

<script src="js/common.js"></script>
<script src="js/pages/some-page.js"></script>
于 2013-02-28T14:22:35.113 に答える
0

動的に生成されたページがある場合は、さまざまな名前/アクション/コントローラーを使用できます。その後、次のことができます

echo '<script type="text/javascript">$(document).ready(function(){'.$page_name.'();});</script>';

次に、任意の JS ファイルでグローバル関数を宣言できます。はい、任意の数の JS ファイルを使用でき、任意の方法で分割できます。それらはすべてグローバルです。

function name1(){...};

多くの JS ファイルを含む大きなアプリケーションがある場合は、1 つのフォルダー内で複数のファイルに分割し、縮小プラグインを追加してそれらを 1 つの出力ファイル (または JS ビルダー) に「収集」します。

rloader は動的読み込みスクリプトであり、基本的にドキュメントに JS ファイルを挿入します ( http://ntt.cc/2008/02/10/4-ways-to-dynamically-load-external-javascriptwith-source.html )。非常に大きなアプリケーションがあり、ロードする MVC http://coding.smashingmagazine.com/2012/07/27/journey-through-the-javascript-mvc-jungle/を使用する場合を除き、使用はお勧めしません。現在のモジュールのみ。

于 2013-02-28T14:22:48.210 に答える