加载脚本时何时使用异步与延迟?

2024-01-09

所以我最近了解到,将 js 放在 DOM 底部已经过时了,我应该再次将它们放在<head>具有“async”和“defer”属性。

伟大的。但我对根据优先级应该使用哪个感到有点困惑。

所以我有:

  • jquery
  • jquery 插件不会立即影响外观 页
  • 对页面外观有直接影响的 jquery 插件
  • 我自己的个人脚本,对外观有直接影响 页面,也依赖jquery

哪个应该异步,哪个应该延迟?

如果我正确理解这一切,那些不会立即影响网站外观的内容应该被推迟,而其他一切都会异步。正确的?或者我把这些搞混了。


这很简单。你应该使用[async]对于可以按任何顺序执行的脚本,以及[defer]用于解析 HTML 后必须执行的脚本。

例如,如果您有一个在帖子旁边添加社交共享图标的脚本,并且该脚本不依赖于任何其他脚本,则您可以同时使用这两个脚本[async] and [defer]。但是如果你的脚本需要 jQuery,你就不能使用[async],因为如果你这样做,它可能会在 jQuery 加载之前执行并中断。

如果你的所有脚本都需要 jQuery,那么你不应该使用[async]根本不。至于[defer],这取决于你的脚本是否访问DOM。对于插件来说,这可能并不重要,但您自己的代码可能需要它。

如果你将脚本包装在$(document).ready();, 您可以使用[defer]对于不立即生效的脚本(例如需要用户交互)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加载脚本时何时使用异步与延迟? 的相关文章

  • jquery 通过 div 选择复选框

    我想知道 jQuery 中是否有一种方法可以在有人单击整个 div 层时选中 取消选中复选框 本质上就像有一个巨大的选择区域 有任何想法吗 这是一个例子 我试图使复选框周围可单击以切换单个复选框 几乎如此 fieldset div div
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • 在 JavaScript 中比较表单中的两个数字

    当我尝试比较不同的数字时 数字发生变化 但文本部分保持不变 这只发生在较大 较小的情况下 而不会发生在 NaN 或相等的情况下 这是我的代码 function check var a document getElementById a va
  • Jquery:如何隐藏或关闭所有打开的引导工具提示

    这样我就可以从我的验证函数中显示引导工具提示 var options html true placement bottom title div class tooltip alert alert danger message div inp
  • 使用 jQuery 仅从字符串末尾修剪空格

    我知道 jQuery trim 函数 但我需要的是一种仅从字符串末尾修剪空格的方法 而不是开头 So str this is a string 会成为 str this is a string 有什么建议么 Thanks 您可以使用正则表达
  • JQuery DataTable 单元格从行单击

    我正在尝试在 jquery 数据表上实现一个函数 该函数返回单击行的第一列和第四列 我正在遵循这个示例 它允许我操作单击的行http datatables net examples api select single row html ht
  • 点击问题:动态生成的链接不触发点击功能

    下面是两个代码片段 由于某种原因什么也没有发生 但来自同一个 JS 文件的其他 jQuery 函数在带有 UL 的页面上执行得很好 这是在盯着我看吗 ul class paganation li 1 li li a href 2 a li
  • ReactJS:从没有 onChange 事件的 props 中选择默认值?

    所以 我只是想知道我是否绝对需要在 React 中的选择组件上有一个 onChange 事件处理程序 我有一个道具传递我想要选择的选项的默认值 如果我有的话 它就没有问题
  • 在 vue.js 模板中包含外部脚本

    我是 Vue js 和 web pack 的新手 所以我决定使用 vue cli webpack 来构建初始应用程序 我试图包含一个外部脚本 例如组件 不需要的模板中 但是 Vue 警告这是不允许的 我的 index html 文件与最初生
  • 使用 onBlur 事件上的值更新 React 输入文本字段

    我有以下输入字段 在模糊时 该函数调用服务来更新服务器的输入值 完成后 它会更新输入字段 我怎样才能让它发挥作用 我可以理解为什么它不允许我更改字段 但我能做些什么才能使其工作 我无法使用defaultValue因为我会将这些字段更改为其他
  • 使用 JavaScript 的计时器

    我想使用java脚本实现计时器 我想随着间隔的变化而减少计时器 Example假设我的计时器从 500 开始 我想要根据级别减少计时器 例如1 一级定时器应减1 且递减速度应较慢 2 2级定时器应递减2 递减速度应为中等3 3级定时器应减3
  • Window 与 Var 声明变量[重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中使用 var 和不使用 var 的区别 https stackoverflow com questions 1470488 difference between using v
  • 如何在 angularjs 中修剪()字符串?

    有角度特定的方法吗 如果没有 我应该使用内置的jquery 来做到这一点吗 如果我应该使用内置的jquery 如何在不使用 的情况下访问trim 函数 或者这是必要的 编辑 是的 我知道 str trim 对不起 我需要这个才能在 IE 8
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • 为什么我需要 $(document.body) 来使用 Mootools Element 方法扩展 document.body?

    因此 在尝试让我的应用程序在最新的 IE 上运行后 结果发现 IE 不喜欢以下代码 document body getElement className Firefox 和 Chrome 响应良好 但是document bodyIE 上没有
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • 通过 vh 和 vw 调整 css 字体大小

    所以我想根据容器的大小自动调整文本的大小 但是如果我使用类似的东西 font size 5vw 看起来不错 但是当我缩小页面时 高度开始变得太小 无论如何 我是否可以根据 vh 和 vw 调整文本大小 例如 如果我只是减小页面的宽度 那么高
  • 错误:创建 React Native 项目版本 0.59.9 时找不到 template.config.js

    当我尝试创建 React Native 项目版本 0 59 9 时 出现以下错误 错误错误 无法在 react native 模板中找到 var folders zc h93bvpb573q24 5ynvgkn1wc0000gn T rnc
  • 如何清除隐藏上的引导模式

    如何在关闭 隐藏 关闭时清除引导模式 我有以下模态定义
  • 如何根据所需表单输入的值更改 CSS 样式

    我想知道如何编写 javascript 来改变所需的表单元素的样式 如果它们有价值的话就改变它们 我想要做的是当所需的文本字段为空时 在它们周围有一个彩色边框 并在它们有值时删除边框样式 我想做的是编写一个 javascript 函数来检查

随机推荐

  • Sass 数组中的随机颜色[重复]

    这个问题在这里已经有答案了 我想指定一个颜色数组 然后将颜色随机应用到列表中 到目前为止 我已经做到了颜色会按顺序循环 我怎样才能随机化它 这是到目前为止的 Sass 代码 colors red orange yellow green bl
  • 根据异常类型调用ContainerStoppingErrorHandler

    我使用的是 spring kafka 版本 2 2 4 Release 和 Kafka 版本 2 11 我在用容器停止错误处理程序作为我的错误处理程序 每当出现异常时 就会调用此方法并停止容器 现在 我需要根据异常类型停止容器 如果发生某些
  • 如何检测特定区域的触摸

    目前我看到触摸事件将向我显示发生触摸的 UIView 但是 如果我需要检测某些非矩形形状 例如圆形 的触摸该怎么办 我该如何去做这样的事情呢 基本上 只有当用户触摸不可见的圆形区域内的某处时 我才想做一些事情 感谢任何帮助 指导 TIA 你
  • 了解 PHP/Laravel 中的构造函数、$this 关键字和控制器类

    我知道以前已经对此进行过介绍 但我正在努力解决如何将其应用到我的代码中 我正在 Laravel 中开发一个 PHP 应用程序 但希望使我的代码更加模块化和可测试 这意味着将我的逻辑从我的重型控制器中分离出来 并将它们分离到单独的文件中 并从
  • WPF 中的下划线标签,使用样式

    我有以下风格
  • JavaScript 和非常长的字符串

    我在使用以下代码时遇到问题 function showTableData var tableArray var x 0 var theHTML for i 0 i lt 7032 i if x 0 theHTML tr th class s
  • 链接到不带 .lib 的 .dll 文件

    我需要将一些Delphi代码重写为C 并且我们需要链接到动态库TMLComm2004 dll 事实证明我们没有 lib文件 因此我们决定使用以下命令行生成它 dumpbin EXPORTS C Users fayard Desktop TM
  • 如何从 Java 验证 HTML?

    从 Java 验证 HTML 的快速而简单的方法是什么 我正在寻找一个开源 PD 类 或一组类 来描述 100 多个 HTML 标签的各种属性 例如 标签是可选的吗 空的 省略其结束标签是否合法 该标签还可以包含哪些其他标签 如果有 哪些属
  • 所有 JPEG 文件都是 JFIF 吗?

    Active Directory 可以按照 JPEG 文件交换格式 JFIF 存储图像jpegPhoto 属性定义 http msdn microsoft com en us library ms676813 VS 85 aspx 我想使用
  • 如何从 Catch 块返回错误消息。现在返回空

    下面给出了我的 ApiKey 验证示例代码 我使用的是 MVC4 Web api RC public class ApiKeyFilter ActionFilterAttribute public override void OnActio
  • 如何验证关联的模型ID?

    我有一个学生和一个课程模型 学生属于课程 课程有很多学生 class Student lt ActiveRecord Base attr accessible course id name password status studentID
  • Rails:使用现有数据更改现有列的数据类型的影响

    我可能在错误的地方问这个问题 所以如果我是这样的话 请放轻松并为我指出正确的方向 我无法理解使用 Rails 中的现有数据更改现有表中现有列的数据类型将如何影响我正在开发的任何应用程序 如果我有一个名为的布尔列football The fo
  • 通过用户 ID 查询 Google Analytics

    有没有办法使用查询结果核心报告 API v3 https developers google com analytics devguides reporting core v3 并通过以下方式过滤这些结果User ID https deve
  • 在哪里可以找到 Microsoft 应用程序的应用程序 ID URI?

    我正在尝试以我注册的应用程序身份登录 并授予以下权限 Azure 门户 gt 应用程序注册 gt 应用程序注册 预览 gt 我的应用程序名称 API 权限 根据本文档 https learn microsoft com en us grap
  • 如何在 Swift 3.0 中将字符串转换为 UIColor?

    我正在尝试将使用预定义颜色列表的现有程序从 Objective C 转换为 Swift 原始代码使用Selector来提取一个UIColor基于它的名称表示为NSString define UIColorFromRGB rgbValue U
  • 正则表达式使 3 个单词彼此靠近。如何获取他们的上下文?

    我有以下字符串 text I love jam I like all other kinds of confectionery as well cakes and croissants and things Bagels too Carbs
  • 如何执行另一个php脚本?

    如何执行另一个 php 脚本 我想从我的 php 文件执行 3 个 php 脚本 而不需要等待 3 个脚本完成 换句话说 这 3 个 php 文件需要同时执行 并行 而不是一个接一个 顺序 执行 这 3 个脚本位于我的主 php 文件 脚本
  • 使用 PANDAS 在数据帧列中查找多个精确的字符串匹配

    我有数百万个条目数据集 其中包含人类输入的观察结果 以指示某些 操作 结果 尝试创建一些类别 我需要查看此列并提取某些确切的内容 最常用的表达方式 它们可以出现在字符串的开头 结尾或中间 并且可以缩写也可以不缩写 我构建了以下示例 data
  • Netbeans 不会自动缩进 (Java)

    我有一个大学项目 我必须编写一个 Java 应用程序 由于我们使用 Netbeans 作为 IDE 来学习 Java 因此我决定使用此 IDE 来编写应用程序代码 我以前的电脑上从未遇到过这个错误 现在 当我在编写函数或任何其他块后打开 时
  • 加载脚本时何时使用异步与延迟?

    所以我最近了解到 将 js 放在 DOM 底部已经过时了 我应该再次将它们放在具有 async 和 defer 属性 伟大的 但我对根据优先级应该使用哪个感到有点困惑 所以我有 jquery jquery 插件不会立即影响外观 页 对页面外