【问题标题】:javascript "include" strategies [duplicate]javascript“包含”策略[重复]
【发布时间】:2008-11-25 01:02:32
【问题描述】:

重复: Use javascript to inject script references as needed?

Javascript 没有任何指令来“包含”或“导入”另一个 js 文件。 这意味着如果script1.js 使用script2.js 中定义的函数/对象,那么每个包含script1.js 的html 页面都必须在其前面包含script2.js。

如果您在 10 个 html 页面中只有 2 个 js 文件,这应该不是什么大问题。我的意思是,它是可以管理的!

但是突然说你改变了script1.js并通过使用新文件中定义的函数/对象来改进它,script3.js
问题是,你不能只告诉script1.js 包含script3.js,相反,你必须记住每个包含script1.js 的html 文件并更新它以包含script3.js

这似乎是一种相当愚蠢的代码组织方式。

是否有推荐的策略或做法来处理这个问题?

拥有一个包含您在整个网站上使用的所有功能的巨大 js 文件是否可以接受?

【问题讨论】:

  • 重新打开。这不是第一次有人指出您必须将您关闭的副本放在问题的顶部。
  • 你可以自己解决这个问题。

标签: javascript


【解决方案1】:

【讨论】:

    【解决方案2】:

    Scriptaculous(可能还有其他框架)通过在加载文件时将包含文件的脚本标签写入文档来处理此问题。下面是 scriptaculous.js 文件中的相关部分,它允许加载框架中的其他文件。

     var Scriptaculous = {
       Version: '1.8.2',
       require: function(libraryName) {
         // inserting via DOM fails in Safari 2.0, so brute force approach
         document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
       },
       ...
    

    【讨论】:

      【解决方案3】:

      就我个人而言,我试图通过将我所有的 javascript 整合到一个文件中来避免所有这些混乱。如果有一个页面需要大量其他页面不需要的 javascript,那么只需两个文件 - 通常页面特定的 JS 可以在通用 js 之后加载,无论如何都没有麻烦。

      为了将 JS 文件合并为一个,我使用了 Dean Edwards 的 Javascript Packer,并结合了我在 blog 中描述的帮助脚本。它使处理许多 JS 文件变得更加容易(至少对我而言),并且从打包 javascript 中获得的压缩效果更好。

      【讨论】:

        【解决方案4】:

        我猜你可以在你的 JS 文件中使用 document.write 来确保它们包含它们所依赖的任何依赖项,尽管我不会真的推荐它......

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-19
          • 1970-01-01
          • 1970-01-01
          • 2021-09-06
          • 1970-01-01
          • 2020-02-10
          • 1970-01-01
          • 2016-06-20
          相关资源
          最近更新 更多