优化javascript加载的最佳实践

y62*_*ang 5 javascript optimization performance loading

我在网上阅读了一些关于优化javascript加载的文章.我得到的几个关键点是最小化脚本文件(http请求)的数量,缩小和启用服务器上的gzip.目前,我所做的是所有javascript文件都缩小了,gzip也可以简单地启用.

第1部分)

我的问题是我有大约20个javascript文件,有一个common.js具有所有核心功能.除此之外,每个页面都会加载至少一个实现该页面功能的其他文件.

解决方案1是将所有脚本组合在一个大脚本文件中,并为每个客户端加载一次,这似乎是其他人正在做的事情.我猜YUI或JSMin可以用于压缩,所以我应该手动组合文件?

解决方案2,当需要一个必需的函数时,延迟加载,我真的不知道它是如何工作的,但它似乎是一种方法,但仍然需要更多的http请求.我很想听到有关此的任何意见.

第2部分)

我工作的Web应用程序将被部署到许多其他计算机,因为JavaScript的是非常小的,它是一个很好的做法,使一个脚本,从中央服务器动态加载最新的脚本,让每一位客户将运行最新的脚本?

小智 3

第 1 部分:正如您所说,有两种方法。

  • 解决方案 1 是有效的,并且有一些工具可以执行此操作,包括Google 的 Closure Compiler。问题是在大多数情况下,它需要包含站点上的每个脚本才能正常工作,因此无论您的页面可能使用什么,它都会获取所有内容
  • 解决方案 2 也是有效的,但正如你所说,并不能真正阻止多个 http 请求。但它的好处是,它只在您需要时加载您需要的内容,并且不会在初始页面加载时创建任何阻塞调用。Head.js 是提到的一个选项,还有 Require.js 等。

第2部分:

  • 有一些方法可以强制浏览器始终下载最新的 JavaScript 文件,尽管这会抵消浏览器缓存的好处。一种常见的方法是将 get 变量添加到 javascript URL 的末尾,即“domain.com/index.js?timestamp=_123123123”。这与 jQuery 在关闭 ajax 调用的缓存时所做的类似。