3

我正在阅读 head.js 主页 ( http://headjs.com/ ) 上的理论部分,并且我同意并行加载脚本的性能更好。但是一定要有限度吗?

  • 我通常有很多 js 文件。我喜欢我的应用程序非常模块化,并且大多数脚本都在 1 到 3KB 之间。这似乎有很多 http 请求,并且会扼杀并行加载脚本的好处。我想知道是否有人进行了某种测量以查看使用诸如 head.js 之类的加载器有意义的阈值是多少,以及只有一个大的 js 文件更好?(所有文件都同样缩小)

  • 我的另一个问题是 4G 连接设备。我们知道 HTTP 请求的开销在 4G 网络上更大。在这种情况下,像 head.js(或 require.js,或 lab.js,...)这样的解决方案是否仍然有意义?

4

2 回答 2

4

免责声明:我目前正在开发 HeadJS

第一件事第一,网站上的理论部分很老,你看到的瀑布截图就像 FF3 或 4 ..从那时起导航器已经走了很长一段路:)

确实,并行加载是最好的事情,但秘密是,今天几乎所有的导航器都是在幕后自己做的BrowserScope Stats

我给你的建议:

  • 缩小你的js
  • 做一个大包
  • 将其粘贴在页面底部

现在,在 <head> 中没有单个脚本(可能是 1 个脚本)的情况下,尽一切可能使您的产品正常工作.. 允许您使用 .ready(function) 将函数推送到页面末尾的东西

努力拥有一个通过 CSS(如 bootstrap 或其他)而不是 JS(jQuery Mobile 或其他)工作的 UI 布局。

如果您确实需要将某些功能推送到页面末尾,那么 HeadJS 可以帮助您,因为它内置了 .ready()。您仍然应该努力将除 HeadJS 之外的所有脚本放在页面底部。

进入页面底部后,通过 script 标签(首选方法)包含您的脚本,或者如果您需要动态依赖管理,请使用 .js() 并行加载脚本。

好吧,还有其他事情需要考虑,但以上内容已经很重要了。

于 2013-05-25T07:37:03.063 回答
1

免责声明:链接是我写的资源。

使用 RequireJS 或任何其他 AMD 加载程序。这样您就可以有选择地或按需加载资源。您可以以这种方式构建您的应用程序,以便最大限度地减少最初所需的资源,并在以后异步加载其余资源。检查: 了解 AMD 和 RequireJS

于 2013-05-28T03:31:40.457 回答