2014-08-27 35 views
0

我正在为Web应用程序构建一个多页前端。用户界面的JavaScript很少,但我知道有很多JavaScript来处理后端,所以我尽我所能保持它尽可能稀疏和有限。这是有条件的JavaScript加载任何值的方法吗?

我想同时有条件地执行JavaScript同时只使用一个缩小的js文件。我有一些全局函数,但大部分代码都是页面特定的。每个页面都有body元素中页面的id。例如,about.html的代码为<html>...<body id="about">...</body></html>

我知道各种异步方法来加载JavaScript,如require.js或甚至$.getScript,但由于各种原因,我试图避免该路线。因为我对HTML进行了预处理,所以我也不希望每页都打破脚本(尽管我可以),因为它是一个小文件,我不想创建一堆不同的<script>标签。我目前的解决方案是有条件地执行每页需要的JavaScript,和我做它像下面的例子:

$(document).ready(function(){ 
     //global.js code 
     if(document.body.id==='about'){ 
      // about.js code 
     } 
     if(document.body.id==='home'){ 
      //home.js code 
     } 
     // etc. 

    }); 

在生成过程中,所有的JS存储在单独的文件,所以它不是在视觉上是愚蠢的它看起来在这里,因为在条件的主体内部只有一个include filename.js

条件可防止在每个页面上执行不必要的代码。然而,当我这样做的时候,我意识到这样做可能实际上没有任何好处。我读了$(window).load$('body').load事件可能会导致与$(document).ready冲突,并且它们都肯定比较慢 - 正如window.onload(我测试)。这将是我想要的这种做法的首选方式。我读的是真的吗?和/或,是我在做什么有用吗?

+0

您正在做的事情等同于在''标记之前添加脚本标记。 – tcooc 2014-08-27 22:44:28

+0

明白了。所以你所说的是,这是一个速记相当于在HTML中增加'

相关问题