我总是将这些问题考虑到JS优化,现在大多数人通过使用Less,Sass或其他方法将所有CSS组合成单个文件.但是来到JS我对这种方法有点犹豫,因为有插件,框架和你自己的代码.只是想知道是否有规则或最佳实践.
所以我应该将所有我的JS组合成单个JS包括插件,框架,libary和我自己的代码到一个或相应地保持模块化.
我知道这可能取决于项目的规模,但是衡量的是什么,何时应该将所有内容合并为一个或模块化.有什么规则我应该遵循.
任何建议都表示赞赏.
将自己的开发JavaScript组合在一起并进行缩小通常是一个好主意.如果请求太多(特别是如果有多个小文件),则有多个HTTP请求会减慢加载时间.Google PageSpeed Insights提供了有关如何在此处执行操作的一些指导.
正如@veroxii所说,大多数人最终使用"构建",因为缩小并手动组合所有内容将是一个巨大的浪费时间.为此,我对工作的小网站真的没有一个内置的缩小系统,我喜欢用gulpjs沿一饮而尽,丑化和吞掉-CONCAT来缩小并结合JavaScript资源.
组合时必须小心,因为脚本通常会依赖于其他脚本.假设你有两个脚本组合在一起,其中scriptB依赖于scriptA.如果浏览器在scriptA之前加载并运行scriptB,因为它在组合文件中首先出现,那么就会发生不好的事情.要小心你的脚本组合或使用requirejs之类的东西.
当使用从CDN加载的第三方脚本(如jQuery)时,除了使用他们提供的生产script.min.js资源之外,在缩小或组合方面实际上做不了多少.您可以下载他们的脚本并将其放入缩小过程中,但大多数用户更有可能已经通过浏览器缓存了CDN版本.
在JavaScript方面,最重要的是确保加载脚本不会阻止页面的呈现.大多数JavaScript在没有内容的情况下是无用的,那么为什么不首先加载内容然后加载脚本呢?用户将首先看到内容然后进行交互,因此按顺序加载这些资源可能是个好主意.更多关于这一点.将脚本标记放在页面底部,使用async属性,或使用异步javascript加载程序,如loadJS或requirejs.