【发布时间】:2010-10-07 18:10:32
【问题描述】:
我有几个问题有些相关,所以我将它们全部发布在 SO...上的一个问题上......
问题 1:
我目前正在使用 jQuery UI 选项卡做这个 Facebook 应用程序,只有 4 个通过 Ajax 加载其中的 2 个。主页是 index.html,这是放置选项卡代码的位置,对于通过 Ajax 加载的 2 个选项卡,我有两个不同的文件,tab1.html 和 tab2.html。
目前,jQuery 选项卡初始化和 Facebook JavaScript 初始化是在 index.html 上完成的。 tab1.html 和 tab2.html 都有属于这些页面的 JavaScript 代码。例如,tab2.html 有一个表单,并且有一些 JS(使用 jQuery)代码来验证表单,此代码与 tab1.html 无关,因为 tab1.html 上的 JS 代码与 tab2.html 无关。
我的问题是,我应该继续这样做还是将 index.html、tab1.html 和 tab2.html 中的所有 JS/jQuery 代码聚合到一个 global.js 文件中,然后将其包含在 index.html 中?
我虽然会这样做,但如果用户从不打开 tab1 或 tab2,则会加载不相关的代码。使用单个 global.js 文件的好处是我可以打包/缩小文件,如果我将每个代码块包含在每个相应的 tabX.html 文件中,我就无法做到这一点。
问题 2:
当我使用 jQuery 时,我也使用了很多插件(实际上现在只有 3 个,但这个数字可以增长)。其中一些提供了一个缩小的 JS,我在可用时使用它们,当它们不可用时,我当然使用普通版本。
还有请求问题。如果我有很多插件,比如 10 个,那么对这些插件的请求将是 10 个。还有一个事实是tab1.html中使用了一些插件,但tab2.html中没有使用,反之亦然。
我应该如何在单个 Web 请求中加载压缩/打包版本中的所有插件?我应该在发布我的应用程序之前手动执行此操作(将它们打包并合并到一个文件中)还是可以使用PHP version of Dean Edwards's Packer 并即时打包/合并所有插件?这是一个好方法吗?
问题 3:
如果第一季度的答案类似于“将所有代码合并到一个 global.js 文件中”,我是否应该将 global.js 文件包含在我上面在第二季度描述的打包/合并脚本中?
这样做会简化一切。我可以将我的开发环境与所有 .js 文件、插件和 global.js 正确组织在适当的文件夹中,而无需担心其他任何事情。打包/合并应该处理剩下的事情(从各自的文件夹中提取文件,发送各自的 JS 标头并输出一个打包的 .js 文件)。
最让我困惑的一件事是,并非所有插件都用于每个选项卡,并非所有代码也用于每个选项卡。尽管如此,大部分代码对于每个选项卡和索引都是全局的。这也将所有内容简化为: a) 我不必担心将所需的代码添加到每个 tabX.html 文件中,我可以简单地将它们视为 HTML 模板而不是其他任何东西; b)我不必费心在我需要它们的地方包含必要的插件,因为我目前正在使用 jQuery 中的 $.getScript() 来加载我需要的插件,当且仅当我需要它们时,但我是不确定这是一个好方法,而且代码感觉像这样又脏又丑。
【问题讨论】:
标签: javascript jquery jquery-plugins