6

问题

如果您使用单个 javascript 文件来保存所有脚本,那么您将仅用于一页的脚本放在哪里?

背景

这可能是一个意见问题或“最佳实践”,但我对其他人的意见感兴趣:

我在一个项目中使用html5 样板。他们建议您将所有 javascript 放在一个文件script.js中以提高速度和一致性。似乎有道理。

但是,我有一些仅与单个页面相关的地理定位脚本,与其他页面无关。我是否应该打破约定并将这个脚本放在我调用它所依赖的 javascript 库下方的页面上?script.js只需在它们所依赖的库的链接下方调用相关函数(位于)文件中?

谢谢!

4

4 回答 4

5

html5 样板的好人建议将所有 javascript 放在 script.js 中,以便浏览器只需加载该文件(以及 h5bp 使用的其他文件)并允许缓存该文件。

这个想法不是陷入“推荐”的方式,而是考虑与您自己的应用程序相关的事情。

  • 这个地理定位文件只会在这一页上使用,对吧?它永远不会在其他任何地方使用。
  • script.js 文件将用于多个页面。

好吧,那么在 script.js 文件的一页上放置一个只需要的“整个脚本”是没有意义的。您应该将文件设置为外部文件并在需要的页面上单独调用它。这将使您不会因为该用户可能永远不会使用的功能而膨胀 script.js 文件。

但是,如果您的地理定位功能的“整个脚本”非常小,请将其包含在 script.js 中。如果它没有增加该文件的下载速度,那么将其包含在其中是有意义的。

所有这一切的要点是,我的应用程序的最佳权衡是什么?

我们知道这些事情是真实的:

  • 缓存的js文件很好
  • 下载的文件越少越好
  • 要下载的小文件很好
  • 保养很重要

一旦您从应用程序的角度考虑这些事情,决策就会变得容易一些。请记住,权衡毫秒的决定不会对用户对页面速度的“感知”产生太大影响。

于 2011-12-20T19:27:31.653 回答
1

浏览器只会下载 .js 文件一次(除非发生阻止浏览器缓存的事情)。因此,如果您希望您的所有用户在会话期间的某个时间点击使用地理定位的一个页面,那么您不妨尽早将其提供给他们。如果您预计可能有一小部分用户最终会访问地理位置页面,那么您可能想要拆分它们。

于 2011-12-20T19:12:13.140 回答
0

我认为你应该把它放在一个单独的文件中。将所有脚本放在一个文件中可能会导致意外行为和冲突。我喜欢为所有页面将使用的 javascript 脚本文件包含插件、辅助函数、格式化函数等。然后为每个页面相关的所有内容创建一个单独的 js 文件。

如果您仍然希望浏览器中只有一个 js 文件,您可以利用将多个 js 文件合并为一个的实用程序之一。

于 2011-12-20T19:17:36.940 回答
0

将其拆分为单独的 .js 文件,以便对其进行缓存。然后从您的页面引用两个外部 .js 文件。

于 2011-12-20T19:15:06.027 回答