javascript - 我应该使用 jQuery 的 getScript() 还是大量的 <script> 标签?

标签 javascript jquery getscript

我开发了一个 JavaScript 系统,它被分成一堆文件(大约 20-25 个)。其中大多数是核心文件,需要存在才能使系统正常运行,但有些文件充当插件,如果不需要该功能,可以省略。

我担心的是,我有一堆 HTML 页面使用这个系统和不同的插件组合,所有这些页面都有 <script> 的巨大墙。页面开头的标签需要仔细排序,以便首先加载文件的所有依赖项。感觉我或其他人搞乱 HTML 文件之间这些标签的复制/粘贴和内容中断只是时间问题。

所以,我一直在研究 jQuery 的 getScript()功能并考虑创建一个安装文件,该文件采用一些参数指定要使用的插件组合,然后动态加载幕后的所有内容,将其全部减少为单个 <script>每个文件的标签(不包括 jQuery 等)

这有什么重要的缺点吗?据推测,由于 jQuery 初始化等原因,加载会花费更长的时间,但这可能很重要吗?另外,是getScript如果依赖项在其依赖项之前完成下载,跨文件依赖项可能不安全?是否还需要考虑浏览器兼容性问题?

我真的很想清理这面标签墙,所以如果有更多经验的人可以帮助我,我将不胜感激。

最佳答案

我不是 jQuery 专家,但我相信 getScript() 是异步的,而您的脚本加载则不是。这有优点也有缺点。这是 getScript() 实际执行的操作:

$.ajax({
  url: url,
  dataType: 'script',
  success: success
});

如果你有一个页面高度依赖于这个 javascript 那么这将是一个坏主意。如果您的页面不需要快速加载脚本,那么使用 getScript() 应该没问题。另外,如果您需要按特定顺序加载脚本,则这根本无法异步工作(因为脚本可以按 getScript() 中的任何顺序运行)。

还需要注意的是,getScript() 不会附加脚本元素。相反,它在全局上下文中运行它们。这对于大多数应用程序来说应该无关紧要,但对于某些应用程序来说确实会产生影响。

此外,我建议查看DurandalJS 。它包括 jQuery 以及 Knockout(一个很棒的库,但并不真正适用于本文)和 RequireJS ,一个可以帮助您完成所需任务的库!

关于javascript - 我应该使用 jQuery 的 getScript() 还是大量的 &lt;script&gt; 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20076360/

相关文章:

javascript - 将 Bootstrap 4 Carousel 与动画文本同步(morphext)

javascript - 启用和禁用基于 jQuery 中的偶数的 Span 类

javascript - Uncaught ReferenceError : script is not defined

javascript - 检测脚本是否已经加载

javascript - ajax 和 $.getScript() 获取新脚本

javascript - 使用 js 自动调整网格列的大小

javascript - 如何在一行中返回 map 箭头函数中的展开运算符

javascript - 通过引用将变量传递给函数,并更改它的值?

javascript - Knockout.js 按钮仅在 observableArray 的最大索引上可见

javascript - 过滤具有不同输入的数据属性