管理页面特定的Javascript:带有条件或多个文件的1个大文件

时间:2013-01-31 14:14:56

标签: javascript loading

在我的项目中,每个页面都有大量的函数,所以我将它们放在一个javascript文件common.js中并将其包含在我的页脚模板中。我的问题是,处理特定于页面的javscript的最佳方法是什么?

例如,在我的某个页面上,我有一张谷歌地图。如果我的地图js代码在我没有id map_canvas的元素的页面上运行,我会收到错误。

方法1:我可以编写一些PHP,当且仅当我在地图页面上时,才会回复请求map.js的附加脚本标记。

方法2:我可以为我的地图页面的<body>提供“map_page”的ID,然后我可以在common.js中按以下方式编写条件子句:

if (#map_page exists){
    put contents of map.js here
}

方法1的问题在于它增加了对服务器的请求数。 方法2的问题在于它使我的常见javascript文件膨胀。

请有人解释一下,如果有任何方法可以做到这一点,或者如果两者都不合适,我应该做些什么呢?

我有大约10个特定于页面的javascript文件要处理。

由于

1 个答案:

答案 0 :(得分:0)

我会说更简单更好。在每个页面上,只需添加一个调用map.js的脚本标记。或者,在您的common.js中,您不需要粘贴所有map.js的代码。您可以使用js创建一个新的脚本标记,并像这样调用map.js。我不推荐使用php方法。最简单,最简单,因此最不可能是错误的方法,只是为需要它的页面添加另一个脚本标记。或者,如果这不是一个选项,common.js可以包括:

if(need map.js){
    var mapjs=document.createElement("script");
    mapjs.type="text/javascript";
    mapjs.src="map.js";
    document.body.appendChild(mapjs);
}