4

多くのコード、多くのライブラリなどを共有する2つのページがありますが、いくつかの違いがあるとします。具体的な例として、jQueryを含め、各ページに「ドキュメント対応」(別名$(function() { ... }))で異なる機能があります。

JSを使えば簡単でしょう。各ページにjQueryを含め、各ページに異なる部分を含めるか、、、およびに<script>含めます。script-behind-page-A.jspageA.htmlscript-behing-page-B.jspageB.html

ClojureScriptで同じ結果を得るにはどうすればよいですか?

コンパイル出力が非常に大きいので、コンパイラーによってJavaScriptの大きなボールを1つ発行するのが最善だと思います。その場合、明らかに2つの異なる「ドキュメント対応」機能を持つことはできません。

コードを作成するために提案されたフローは、ほとんどの場合、実行を可能にする関数で構成され、いくつかの状態変数が初期化され、必要に応じてプレーンJSで各ページを個別に初期化しますか?

4

1 に答える 1

5

I think the recommended approach would be what is explained in this ClojureScript tutorial by Mimmo Cosenza:

  • Produce a single, large JS output file (so you optimize/gzip it when this goes live)
  • Use different namespaces for the functions, make sure you export at least a single "entry-point function" for each page
  • On each HTML file, call the desired "entry point function", like this:

    <!-- on the bottom of welcome.html -->
    <script src="js/output.js"></script>
    <script>myapp.welcome.init();</script>
    
    <!-- on the bottom of login.html -->
    <script src="js/output.js"></script>
    <script>myapp.login.init();</script>
    

This is explained on detail on the part 6 of the tutorial.

于 2013-03-14T02:07:13.350 に答える