执行动态加载的JS文件

2023-12-01

我理解JS是单线程、同步执行的。因此,当我将文件添加到浏览器头标记时,该文件一遇到就会执行。然后它转到下一个脚本标记并执行该文件。我的问题是当我将 js 文件动态添加到 HTML head 标记时。浏览器如何执行该文件? 是不是像当前执行的地方只要文件加载完就执行该文件。或者我们可以控制该文件的执行方式吗?


当脚本加载后,它会尽快执行。也就是说,如果其他一些 JavaScript 函数正在执行,比如点击处理程序或其他函数,那么它将被允许首先完成 - 但这是给定的,因为正如你所说,在浏览器中 JavaScript 通常在单个线程中执行。

您无法控制脚本加载的那部分,但您可以使用此模式 - 很大程度上受到 JSONP 的启发:

插入的脚本:

(function () {
    var module = {
        init: function () {
            /* ... */
        }
    }

    ready(module);  // hook into "parent script"
}());

主页上的脚本:

function ready(o) {
    // call init in loaded whenever you are ready for it...
    setTimeout(function () { o.init(); }, 1000);
}

这里的关键是ready在您的页面上定义并从您动态插入的脚本中调用的函数。脚本不会立即开始行动,只会告诉父页面它已加载,然后父页面可以回调插入的脚本init每当它想要开始执行时函数。

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

执行动态加载的JS文件 的相关文章

  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • 如何阻止直接访问我的 JavaScript 文件?

    我使用 Minify 来缩小并缓存所有脚本请求 我只希望我的用户能够访问 JavaScript 文件的缩小版本 缩小位于www example com min我的脚本位于www example com scripts 如何阻止直接访问doc
  • 在特定页面上执行 javascript 的正确“Rails”方式

    我试图在特定页面上运行 javascript 而我唯一的解决方案似乎是反模式 我有controller js内部生成的assets javascripts 我在用着gem jquery turbolinks 我的代码类似于以下内容 docu
  • Firebase,只得到新的孩子[重复]

    这个问题在这里已经有答案了 var firebase new Firebase firebaseRef on child added function snapshot 这将接收所有元素 有没有办法在创建新的 Firebase 引用时不接收
  • 从函数返回函数的目的是什么?

    阅读一些遗留代码 发现 A prototype setSize function var v1 new Vector2 return function size var halfSize v1 copy size multiplyScala
  • 使用 Node.js 构建网站的最佳实践

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想知道如何使用 Node js 从头开始 开发一个网站 我明白我怎么能possibly
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • 如何使用有角度的材料创建卡片网格?

    我正在尝试使用 ng repeat 创建每行三张卡片的网格 我有一个普通的 javascript 对象数组附加到范围 下面的代码将为每张卡创建一个新行 div div
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • ReactTransitionGroup 不适用于 React-redux 连接组件

    我正在开发一个更大的项目 但我创建了这个简短的示例来说明问题 如果我使用Box组件 它的工作原理 它在控制台中输出componentWillEnter and componentWillLeave当我们点击按钮时 如果我使用BoxConta
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

  • Android应用程序更新时如何处理多个数据库版本变化

    感谢您在这里阅读我的问题 其实我对如何处理有些困惑SQLite tables当我需要在表中为多个 sq lite 版本添加一些行时 我谷歌了一下 发现类似这样的事情 我们必须在其中更改表onUpgrade方法 这将是工作顺序更新 Suppo
  • 如何使用内联 c++ 方法更改 emacs c 缩进样式以不缩进左大括号

    我现在在emacs中使用bsd风格 这是我几年前学习 pascal 后开始使用的一种风格 我决定在新项目中使用它而不是其他风格 然而 emacs bsd 风格有两件事让我烦恼 它缩进内联方法 1 如何阻止它像这样缩进 i e class A
  • 如何访问Nuxt中的私有数据?

    所以我有我的 nuxt 2 应用程序 我想从单个页面上的 API 获取公司评论 API 不允许来自浏览器 客户端的请求 因此我需要使用服务器来进行此调用 所以我正在使用异步数据 with if process server 但现在我遇到的问
  • 可见性:隐藏与显示:无与不透明度:0

    我目前正在开始一个动画项目 在项目中我将有超过40000divs 并迭代地为它们设置动画 如果有任何一个divs 处于被动状态 即至少 2 秒内没有动画 我不会显示它们以提高动画性能 问题是 哪个 css 属性最适合这个 passive1
  • 访问:Shell cmd 打开MDB

    我一直在使用以下命令通过 VBA 打开另一个 MDB Access 文件 Shell cmd c Chr 34 strNewFullPath Chr 34 vbHide strNewFullPath 是 MDB 文件的完整路径 使用 Acc
  • Talend - 限制处理的行数

    我正在使用 Talend ETL 在两个 Salesforce 组织之间传输数据 我正在尝试运行初步测试以确保一切设置正确 有没有办法限制传输的行数 数据库有超过 50 000 行 我只想发送超过 15 或 20 行 谢谢 在 Talend
  • 使用 OAuth2 从命令行访问 App Engine 应用程序?

    我有一个 App Engine 站点 其 URL 被标记为login required在 app yaml 中 我需要从命令行脚本访问此 URL 既然 OAuth2 已取代 ClientLogin 我该怎么做 之前的问题 最终都使用了Cli
  • Powershell - 错误 CS0246:找不到类型或命名空间名称“ICertificatePolicy” - gitlab 管道失败

    我正在尝试重用这个执行部署后烟雾测试的 powershell 脚本 当我在构建服务器上本地运行时 该脚本工作得很好 但是当我尝试通过我的 gitlab 管道运行时 它会失败并出现错误 add type 3 36 错误 CS0246 找不到类
  • 如何添加新的分组变量

    如何根据日期添加另一个变量作为分组变量 这是我的数据 df lt tibble id c rep 1 8 rep 2 3 col structure c 19031 19031 19031 19031 19072 19072 19072 1
  • 购物车 - 购物车中的商品数量 CSS

    正如我们在流行网站上看到的那样 网站上有一个小图标 top right的购物车图标 我必须在我的 ASP NET 网页中使用类似的东西 如何将此图标置于购物车图标的右上角 购物车的图标是普通的引导程序图标 购物车中商品数量的 css 如下
  • 如何使用 XCUITest 测试 UIImageView 是否包含具有特定名称的图像?

    我有一个 collectionView 它有一堆单元格 每个单元格中包含一个 UIImageView 我想测试每个单元格中 imageView 的图像是否与正确的图像名称匹配 在生产代码中 我向 UIImageView 示例添加了一个辅助功
  • 在ios swift中将firebase数据添加到数组中

    我在从 firebase 数据库获取数据并将其添加到数组中时遇到问题 该方法的打印输出获取新报价显示数组为空 但屏幕截图显示标签已在获取新报价方法 怎么会发生这种事 事件中是否存在延迟获取新报价导致这种情况的方法 此外 标签是如何随着第四次
  • 在Python中从json中获取多个键

    我的文件中有以下 json 结构 Date timevalue Org b4256282 Referer somevalue Date timevalue Org b4257482 Referer somevalue Date timeva
  • 如何在同一 Play 控制台商店列表中分发 Android 手机+wearOS 项目

    我有一个手机项目 以及一个手表 wearOS 项目 90 的代码在两个项目之间共享 我想将它们打包并分发到同一个商品详情中 注意 所有共享代码都存在于公共库模块中 我尝试将手表项目作为模块添加到我现有的手机项目中 但是在生成要发布的应用程序
  • 如何将 UIPageControl 与 iCarousel 一起使用?

    我在 icarousel 中有一些图像 约20张图片 我想在一页上放 5 张图片 图像像素或图像位置没有问题 如何在没有ScrollView的情况下使用uipagecontrol 例如 能够使用一些委托方法 等等 carousel type
  • Node.js:确定修改时的文件大小

    我正在 Node js 中查看一个文件 并希望在每次更改时获取该文件的大小 如何做到这一点fs watchFile 这就是我目前正在做的事情 fs watchFile file function curr prev determine fi
  • AttributeError:模块“pyparsing”没有属性“downcaseTokens”rasa

    我在使用 rasa 时遇到问题 因为出现以下错误 我无法跑步或训练或做任何事情 回溯 最近一次调用最后一次 文件 c users dell anaconda3 envs rasanew lib runpy py 第 193 行 位于 run
  • 将子控制器添加到表视图单元格时不会调用 viewWillAppear

    当我将子视图控制器添加到表视图单元格时 它看起来像视图将出现对于子视图控制器不被调用 仅查看是否出现 表视图控制器方法 override func tableView tableView UITableView cellForRowAtIn
  • 删除具有相似前缀的重复行

    我需要删除文件中具有重复前缀的类似行并保留唯一的行 由此 abc def ghi abc def ghi jkl one abc def ghi jkl two 123 456 123 456 789 xyz to this abc def
  • 执行动态加载的JS文件

    我理解JS是单线程 同步执行的 因此 当我将文件添加到浏览器头标记时 该文件一遇到就会执行 然后它转到下一个脚本标记并执行该文件 我的问题是当我将 js 文件动态添加到 HTML head 标记时 浏览器如何执行该文件 是不是像当前执行的地