带有本地Javascript文件的Cordova应用程序-多个文件还是一个?

带有本地Javascript文件的Cordova应用程序-多个文件还是一个?,javascript,cordova,minify,Javascript,Cordova,Minify,我正在构建一个Cordova移动应用程序,我正在制作的自定义脚本都在应用程序包的本地内部,我很关心性能。 像每个大的名称空间变量都在一个单独的文件中一样,文件数量多是可以的,还是应该将它们全部放在一个文件中 正如我所说,所有这些文件都将在本地显示,而不是在服务器上显示,我关心的是性能。如果不先显示存在性能问题并准确确定问题所在,就不要优化性能。首先是可维护性代码。我会将你的JavaScript文件分开。你的应用程序应该有某种构建过程。有很多工具可以帮助自动化这个过程(,等等),但是您也可以使用简

我正在构建一个Cordova移动应用程序,我正在制作的自定义脚本都在应用程序包的本地内部,我很关心性能。 像每个大的名称空间变量都在一个单独的文件中一样,文件数量多是可以的,还是应该将它们全部放在一个文件中


正如我所说,所有这些文件都将在本地显示,而不是在服务器上显示,我关心的是性能。

如果不先显示存在性能问题并准确确定问题所在,就不要优化性能。首先是可维护性代码。我会将你的JavaScript文件分开。

你的应用程序应该有某种构建过程。有很多工具可以帮助自动化这个过程(,等等),但是您也可以使用简单的npm脚本。如何创建构建过程不是这里的重点。然而,好处有很多:

  • 您可以使用多个小文件开发应用程序。如果您有良好的组织和一致的命名实践,这些文件将比一个大文件更易于维护

  • 您可以从这些文件中构建应用程序的适当调试和发布版本

    a。如果希望将文件捆绑到一个大文件中,可以使用打包器,如或。然后,根据您传递的选项,您的调试版本可以包括必要的源映射,以简化调试

    b。您可能还想使用其他工具,例如用于JS代码的缩小器,或用于图标的图像优化器

  • 您可以使用成熟的模块模式来创建不会污染全局名称空间的模块化代码(如果您使用诸如Browserify、JSPM等)。这意味着您可以执行以下操作:

    // file: say.js
    module.exports = {
        hello: function hello() {
            alert("hello");
        },
        goodbye: ...,
        ...
    };
    
    // file: index.js
    var say = require("./say.js");
    say.hello();
    say.goodbye();
    
  • 不要执行上述操作,因为这样会“更快”,因为加载单个文件与加载多个文件时的差异几乎可以忽略不计,并且以毫秒为单位。除非你有大量的文件,否则你的用户根本不会注意到。如果这成为一个问题,很容易让您的构建过程生成一个发布版本,将所有内容捆绑到一个大文件中,而不牺牲可维护性


    执行上述操作以简化您的工作流程。编辑一个有十万行的文件是没有乐趣的——相信我,你不会想这么做的。

    我说的性能并不是说有问题,但我确实希望尽可能快地加载所有内容。在处理用户交互时,不要以“尽可能快”为目标。相反,从用户的角度来看,目标是“足够快”。从长远来看,能够快速、安全、廉价地进行更改对您和您的用户来说将更有价值。我明白了,是的,但我也想听听其他意见,所以不只是接受答案。通常有一个捆绑处理程序,将所有单个文件连接到一个大文件中。因此,可以维护单个文件,同时将一个大文件传输给客户端。但是,这取决于你的网站是否有任何明显的影响。就像我说的,这不是一个网站,而是一个Cordova移动应用程序,javascript文件将在设备上本地显示。我同意@Lain,以及AndyLamb,但我不认为Andy的回答不应该是评论。如果您想提高性能,请查看Gulp和bundle插件。旁注:Cordova应用程序是在移动应用程序容器中运行的网站。这里没有什么特别的,除了一些JS操作,你可以访问像照相机这样的东西。@Sartheris Stormhammer:是的,我猜是这样。这就是为什么它只是一个评论:)