管理和部署大量JavaScript的应用程序的最佳实践(Best practices for man

2019-07-21 12:53发布

什么是管理中大型JavaScript应用一些标准的做法? 我的顾虑都是速度的浏览器下载和易用性和发展的可维护性。

我们的JavaScript代码是概略地“命名空间”为:

var Client = {
   var1: '',
   var2: '',

   accounts: {
      /* 100's of functions and variables */
   },

   orders: {
      /* 100's of functions and variables and subsections */
   }

   /* etc, etc  for a couple hundred kb */
}

目前,我们有一个(解压后,剥开,具有很强的可读性)JavaScript文件来处理Web应用程序的所有业务逻辑。 此外,还有jQuery和jQuery的几个扩展。 我们面临的问题是,它需要永远发现在JavaScript代码和任何浏览器仍然有十几个文件进行下载。

它是常见的有那被“编译”成一个最终的“源”的JavaScript文件屈指可数,压缩JavaScript文件? 任何其他方便的提示或最佳做法?

Answer 1:

我发现我的作品是有每类单独的JS文件的方法(就像您在Java,C#等会)。 另外,您可以将您的JS到应用程序的功能区,如果这是更容易为你导航。

如果你把你所有的JS文件到一个目录,你可以有你的服务器端环境(PHP例如)通过在该目录中,并输出的每个文件循环<script src='/path/to/js/$file.js' type='text/javascript'>在由所有UI页面包含了一些头文件。 你会发现这个自动加载特别方便,如果你经常创建和删除JS文件。

当部署到生产,你应该有,结合他们全部纳入一个JS文件和“minifies”脚本它保持一定的尺寸了。



Answer 2:

另外,我建议你使用谷歌的AJAX库API以加载外部库。

这是谷歌开发者工具包专业的JavaScript库,使之更易于部署,升级,使它们更轻通过始终使用压缩版本。

此外,它使您的项目更简单,更轻,因为你不需要下载,复制和维护论文库文件在您的项目。

使用这种方式:

google.load("jquery", "1.2.3");
google.load("jqueryui", "1.5.2");
google.load("prototype", "1.6");
google.load("scriptaculous", "1.8.1");
google.load("mootools", "1.11");
google.load("dojo", "1.1.1");


Answer 3:

有一个关于维生素的优秀文章通过Flickr的名声卡尔·亨德森他们如何优化自己的CSS和JavaScript的交付: http://www.iamcal.com/serving-javascript-fast/



Answer 4:

就在sidenode - 史蒂夫已经指出的那样,你真的应该“再压缩”您的JS文件。 在JS,空格实际上很重要。 如果你有千行的JS,你只有剥去不需要的的新行已经保存1K左右。 我认为你说对了。

有工具,这项工作。 你永远不应该手动修改“精缩” /剥离/混淆JS! 决不!



Answer 5:

在我们的大的JavaScript应用程序,我们写的所有代码在单独的小文件 - 每个“类”或官能团的一个文件,并使用了一种类似的-Java的命名空间/目录结构。 然后,我们有:

  • 编译时的步骤,需要我们所有的代码和minifies它(使用JSMin的变体),以减少下载量
  • 编译时的步骤,采取那些总是或几乎总是需要的类和连接它们成为一大捆,以减少往返服务器
  • A“类加载器”,在按需运行时加载其余类。


Answer 6:

对于服务器效率的缘故,最好是所有的JavaScript代码合并到一个缩小的文件。

确定在其中所需的代码的顺序,然后将精缩码在它在一个单一的文件是必需的顺序。

关键是要减少加载页面,这就是为什么你应该在生产单一文件中的所有的JavaScript所需的请求数量。

我建议你保存文件拆分为开发,然后创建一个构建脚本合并/编译一切。

此外,作为一个好的经验法则,一定要包括你对你的页面末尾的JavaScript。 如果JavaScript是包含在报头(或在网页上任何一月初),将停止所有其他请求被提出,直到它被加载,即使流水线已开启。 如果是在页面的最后,你会不会有这个问题。



Answer 7:

阅读其他(好)的JavaScript应用程序的代码,看看他们是如何处理的事情。 但我在开始时每个类的文件。 但是,一旦它为生产做好准备,我将这些文件合并成一个大文件,并缩小。

唯一的原因,我也不会合并的文件,如果是我并不需要在所有页面中的所有文件。



Answer 8:

我的策略包括两个主要技术:AMD模块(避免几十个脚本标签)和模块模式(以避免您的应用程序的各个部分的紧密耦合)

AMD模块:非常简单,在这里看到: http://requirejs.org/docs/api.html也是它能够打包应用程序的所有部分为一个精缩JS文件: http://requirejs.org/docs/ optimization.html

模块模式:我用这个库: https://github.com/flosse/scaleApp你现在这是什么要求? 这里更多的相关信息: http://www.youtube.com/watch?v=7BGvy-S-Iag



文章来源: Best practices for managing and deploying large JavaScript apps