从多个文件加载单个JavaScript文件

问题描述:

我试图从外部单独的文件调用JavaScript加载一个单独的JavaScript,并想知道如何去做这件事的最佳方式。具体来说,这只是一个基本的谷歌地图页面,我想组织代码更好一点。我希望将标记变量分成多个组,并将这些变量组存储在单独的文件中,然后在页面的主javascript页头中调用这些文件。我想限制这个代码只是html和javascript来保存它的简单性,以便未来更新的目的不是在这方面知识渊博的人。我不会用JavaScript编写大量代码,如果已经有了一个内置函数,那就太好了。这纯粹是美学,只是为了让代码更清洁。任何帮助或建议,将不胜感激。谢谢。从多个文件加载单个JavaScript文件

+0

我也许应该更具体一点。标记变量组在初始化和填充谷歌地图的函数内。我想从外部存储这些标记并将它们回调到该函数中。我也想在没有任何外部框架或API的情况下做到这一点。不同的人将来需要编辑不同的组以添加标记。这就是为什么我要从外部调用这些。这使得人们可以更轻松地找到要添加到的组,而不必查看标记的整个页面以找到它。 – Brendan

如果我理解你是对的,你不想从其他几个JavaScript文件中调用一个JavaScript文件。你只想保存一些变量组。嗯,你可以将它保存 - 与服务器端的数据库,或者可能是与http://www.w3.org/TR/webstorage/http://www.w3.org/TR/IndexedDB/

+0

你是对的。无论如何你都知道这样做没有服务器?这实际上不是一个实时页面,所以它不会通过服务器访问。这基本上只是一个将完全在本地运行的地图应用程序。这就是为什么这需要尽可能简单。我可以理解,考虑到这种情况,是否无法做到这一点,因为我无法亲自想到在我的限制参数范围内做到这一点的方法。 – Brendan

+0

正如我所说的,你可以使用WebStorage或IndexedDB,或者可能是[cookies](http://en.wikipedia.org/wiki/HTTP_cookie) –

+1

可能,你会发现[lawnchair](http: //westcoastlogic.com/lawnchair/)是一个很好的解决方案。 –

您可以添加引用到外部文件:

<html> 
    <head> 
    <script type="text/javascript" src="colorGradient.js"></script> 
    <script type="text/javascript" src="xpath.js"></script> 
    <script type="text/javascript" src="kml2.js"></script> 
    <style type="text/css"> ... </script> 
    </head> 
    <body> 
    .... 
    </body> 
</html>   
+1

这些不是单独的脚本文件,而是一组js脚本中的变量组。 – Brendan

你可以尝试“功能加载”和/或“按需加载JavaScript的”框架。由于您正在尝试使用Google地图,因此我建议您使用Google Loader API,它与您正在寻找的内容非常接近。

例如:使用简单的JS,你可以做以下....

<script type="text/javascript"> 
    google.load("search", "1"); 
    google.load("jquery", "1.4.2"); 
    google.load("jqueryui", "1.7.2"); 
</script> 

...这将加载多个文件。

拆分你的代码为你的发展是一个好主意。因此,有很多框架可以帮助您在MVC和psudo MVC模型的帮助下组织您的代码。

尝试:

http://maccman.github.com/spine/

http://documentcloud.github.com/backbone/

但什么阻止你对生产环境有一个文件中的一切吗? 它更容易在服务器请求。而你要在这个构建过程反正整合...

但如果你坚持在将它们添加到DOM,你可以做,当然这一点:

document.write(unescape('%3Cscript src="yourfile.js"%3E%3C/script%3E')) 

这将增加

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

你的dom

如果我正确理解你的问题,你想分割成多个.js文件的单个脚本。据我所知,只要你包含一个标签来加载每个文件,这应该工作得很好。您可能需要按顺序加载文件(即,不要包含调用尚未完成的函数的文件)。

但是,请注意,拆分脚本会导致更多的服务器调用,从而减慢页面加载速度。在大多数情况下,仅包含一些脚本甚至不会在加载时间上产生明显的差异。

+0

我该如何去做这件事?就像我之前说的,我没有接近JS大师。 – Brendan

+1

我指的是Cheeso的建议。 根据对您问题的更新,我不确定这是否是您想要执行的操作。 – Andrew