2013-03-09 83 views
4

比方说,我有两个页面共享许多代码,许多库等,但有一些差异。举一个具体的例子,我包含了jQuery,并且在每个页面中“文档准备好”(又名$(function() { ... }))中有不同的功能。如何为不同的页面使用不同的JS输出?

用JS很容易。我会在每个页面中包含jQuery,并且在每个页面上都有不同的<script>,或者在pageA.html中包含script-behind-page-A.js,在pageB.html中包含script-behing-page-B.js

我应该如何用ClojureScript实现相同的结果?

我怀疑编译输出是如此之大,以至于最好有一个由编译器发出的JavaScript大球。在这种情况下,显然不能有两种不同的“文档就绪”功能。

建议的流程是否让代码主要由使您能够完成任务,初始化少数状态变量以及根据需要使用普通JS单独初始化每个页面的函数组成?

回答

5

我想推荐的方法是什么这个ClojureScript tutorial by Mimmo Cosenza解释说:

  • 产生一个单一的,大型JS输出文件(所以你优化/ gzip压缩它时,这个上线)
  • 使用不同的命名空间对于函数,请确保您导出至少一个“入口点函数”的每一页
  • 在每一个HTML文件,调用所需的“入口点函数”,像这样:

    <!-- 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> 
    

这在part 6 of the tutorial上详细解释。

相关问题