Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在开发复杂的Javascript应用程序时,可以使用多个.JS文件吗?_Javascript_Html_Standards - Fatal编程技术网

在开发复杂的Javascript应用程序时,可以使用多个.JS文件吗?

在开发复杂的Javascript应用程序时,可以使用多个.JS文件吗?,javascript,html,standards,Javascript,Html,Standards,它来自C#背景,每个类(最佳实践)都存储在自己的单独文件中,这使得开发非常干净。我过去从未用Javascript编写过任何复杂的东西,但我现在开始学习HTML5,我想用HTML5画布编写一个复杂的游戏 将我所有的函数和代码放在一个.js文件中似乎非常混乱。有没有一种方法可以将其拆分,或者有一种工具/IDE可以让您使用单独的文件进行开发,并将它们编译成一个单独的文件进行部署 我想我正在寻找一些最佳实践建议。像这样的问题通常都会被解决,因此以下是我的一些具体问题,这些问题需要遵守常见问题解答,这些问

它来自C#背景,每个类(最佳实践)都存储在自己的单独文件中,这使得开发非常干净。我过去从未用Javascript编写过任何复杂的东西,但我现在开始学习HTML5,我想用HTML5画布编写一个复杂的游戏

将我所有的函数和代码放在一个.js文件中似乎非常混乱。有没有一种方法可以将其拆分,或者有一种工具/IDE可以让您使用单独的文件进行开发,并将它们编译成一个单独的文件进行部署

我想我正在寻找一些最佳实践建议。像这样的问题通常都会被解决,因此以下是我的一些具体问题,这些问题需要遵守常见问题解答,这些问题需要实际的、可回答的问题:

  • 复杂的JS开发通常涉及到单个JS文件中的所有代码吗?你在写《太空入侵者》,你有spaceinvaders.js还是ships.js、logic.js等等

  • 可以拆分JS(无论是使用多个脚本标记还是预编译到单个JS文件)还是将其全部放在单个文件中

  • 行业标准是什么?HTML5规范有什么建议吗


    • 当然,您可以使用多个javascript文件。库还希望使用jQuery或Knockout函数吗


      不过,要记住的一件事是,要让页面感觉快速,您需要做的一件事是减少每页加载的http请求总数。添加一组单独加载的javascript文件会导致对每个额外文件的额外请求。因此,您可能希望为您的构建尝试一个系统,该系统将javascript文件缝合到一个项目中,以便在部署时使用。有许多解决方案会自动地为你做这件事。

      < P>你可以考虑使用Realjs-一个非常好的库来将你的JavaScript分割成模块。 它还提供了一个工具,您可以将所有模块“组合”到一个文件中。

      有两种可能的方法。 就个人而言,我会使用构建工具来简化处理多个文件的工作

      使用构建工具 咕噜声

      我最喜欢的工具是。使用grunt,您可以在任意数量的文件中进行开发,并使用其插件,并在保存时自动对其进行压缩。您可以做更多的工作,但这是基本的用例,可能对您有所帮助

      Grunt需要并且需要一些时间来设置。但是,一旦您准备好了
      Gruntfile
      设置,它将真正加快您的开发过程

      为了使您的项目为生产使用做好准备,您还可以通过一些配置和单个命令来缩小脚本

      许多主要的javascript库都在使用grunt,根据它们的
      GrunFile
      ::等,很容易识别

      Grunt也是开发工具集的一部分

      早午餐

      是另一个构建工具,它允许您执行与grunt类似的操作

      仅加载所需的文件 如果您正在开发一个巨大的单页应用程序,并且担心应用程序的启动时间,那么单个文件可能不是最佳解决方案。在这种情况下,您可以使用javascript模块加载器

      Require.js


      因此,这是一个非常适合。它只允许您在当前页面上加载实际需要的文件。尽管设置require.js比设置grunt要多一些。

      您可以使用任意数量的
      javascript
      文件。只需在
      html
      代码中添加指向它们的链接:

      <body style="background-color: black" onload="main();" >
          <!-- Your HTML body contents -->
      
      
          <!-- Your scripts (here, I used HTML5 BoilerPlate to setup, and the links to jquery are provided) -->
          <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
          <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script>
          <script src="js/main.js"></script>
      </body>
      
      或jQuery文档就绪回调:

      $(document).ready(function() {
          //here is a good spot to hookup other jQuery listeners
      });
      

      您可以在单独的文件中编写JS,但在部署时,将所有JS缩小到一个文件中更有效。对于加载到浏览器中的每个脚本,您都会往返到服务器,因此将这些脚本最小化是有意义的。有很多单独的文件,但是它们都打包成一个文件进行部署。啊,谢谢-我应该用JQuery作为例子!如果我能弄清楚多人是如何工作的,它可能会回答我所有的问题。干杯。可能重复:JQuery只是一个文件。在我看来,这太棒了,因为我只需一个脚本标签就可以获得所有这些功能。但从开发人员的角度来看,如果整个JQuery都在一个文件中,这将是一场无法管理的噩梦,不是吗?我无法想象我的C#应用程序都在一个文件中。@SLC:正如我上面所说的,看看github上的jquery。他们没有将其开发为单个文件。@SLC演示了我的两个观点:jQuery只有用,因为您可以从其他javascript文件访问jQuery对象。这证明了这是可能的(而且很容易)。这也证明了我的建议:您需要一种将复杂的javascript产品缝合到单个结果中的方法。非常好,谢谢。我将调查其他人建议的工具,他们已经回答了这个问题,这应该让我开始写一些东西
      jQuery
      实际上也在使用
      grunt
      。看看他们的It是什么,同时它简单易懂,而且是模块化的。答案很好!帮了很多忙!grunt如何处理文件之间的公共和私有变量?
      $(document).ready(function() {
          //here is a good spot to hookup other jQuery listeners
      });