如何在javascript中检查异步加载的脚本是否已完成加载

2024-03-02

使用 javascript 异步下载另一个 javascript 文件。

我知道这可以通过在页面上插入一个新的脚本标签来完成src属性设置为文件 url。

脚本下载完成后,我还需要运行一些代码。我一直在使用yepnope http://yepnopejs.com/为此,它们提供了在脚本完成下载和执行时执行的“回调”。

这是如何实现的?

Thanks!


大多数 JS 加载器通过注入<script>标签到 DOM,并绑定它onload事件到您提供的功能。

yepnope使用相同的方法,您可以简单地从其观察到源代码 https://github.com/SlexAxton/yepnope.js/blob/master/yepnope.js。功能injectJs使用以下命令创建 DOM 元素doc.createElement, sets src和其他需要的属性使用setAttribute,绑定onreadystatechange & onload事件到提供的回调,最后将元素插入到文档中。

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

如何在javascript中检查异步加载的脚本是否已完成加载 的相关文章

随机推荐

  • 循环视图路径错误,Spring MVC

    我正在尝试做教程 gt http spring io guides gs serving web content http spring io guides gs serving web content 当我运行它时 它显示圆形视图路径 问
  • 使 Ruby 字符串不可变

    需要使我的程序中的某些 Ruby 字符串不可变 最好的解决方案是什么 写一个包装器String class The freeze方法对我不起作用 我看到freeze不允许您解冻该对象 以下是我的情况 我有一个类将字符串传递给回调 该字符串恰
  • PHP for 循环中允许的内存大小耗尽

    当我尝试在 PHP 中操作一个巨大的数组并将结果作为响应返回时 我遇到了致命错误HTTP POST 请求 允许的内存大小 536870912 字节已耗尽 我已经尝试过设置ini set memory limit 1 为了看看我是否得到结果
  • 如果绑定源为空,如何为图像设置默认源?

    我正在使用绑定作为源Image控制
  • 在eclipse中使用jsr305注释Findbugs没有发现bug

    我一直在尝试将 jsr 305 注释与 Findbugs 一起使用 特别是 CheckForNull 注释 它可以避免我刚刚发现的向客户报告的错误 我已将 jsr305 jar 和annotations jar 添加到我的构建路径中 但 f
  • 安排大 ETA 的 celery 任务

    我目前正在使用 celery 尝试未来的任务ETA http docs celeryproject org en latest userguide calling html eta and countdown功能和 Redis 代理 使用
  • 减少 Mercurial 中的存储库大小

    当我的团队使用 Mercurial 存储库中的源代码处理给定项目时 存储库的大小显然在增长 因此 通过网络克隆存储库变得越来越慢 是否有任何技术可用于删除较旧的提交或减小存储库的大小 以使克隆操作在慢速网络上更快 我们使用 Tortoise
  • 查找列表中最流行的单词

    我有一个单词列表 words all awesome all yeah bye all yeah 我想获得一个元组列表 3 all 2 yeah 1 bye 1 awesome 每个元组在哪里 number of occurrences w
  • Rails 中如何让 Low-Level caching 与 Association caching 协同工作?

    我目前正在开发一个使用 Rails 5 的项目 我想提高性能 所以我决定使用低级缓存 如下所示 class User lt ApplicationRecord has one profile def cached profile Rails
  • 当我尝试上传视频时,Youtube API v3 返回 401

    我使用 YouTube 的 ServiceAccount 上传器 我使用 Youtube API v3 我有简单的控制台应用程序 可将视频上传到 youtube String serviceAccountEmail var certific
  • ParNew gc 会阻止世界吗?

    我看到 GC 输出如下 2010 12 10T16 00 44 942 0800 1443 562 GC 1443 562 ParNew 201856K gt 17318K 201856K 0 0352970 secs 2113334K g
  • 如何在java中使用dd-mm-yyyy格式将字符串格式化为日期[重复]

    这个问题在这里已经有答案了 我需要一些支持 我希望将变量字符串转换为日期 变量日期的格式应为 dd MM yyyy import java util Date String a 2022 05 12 Date b should be dd
  • mapActivity 中出现 NoClassDefFoundError

    我的地图应用程序中出现此错误 您知道出了什么问题吗 我已经检查过 该包在我的 java 文件中是正确的 而且我已将谷歌地图的使用库放入我的应用程序标签中的 manifest xml 中 请帮忙 我花了几个小时来解决它 确保您已输入
  • Azure API 管理服务中的静态 IP 地址

    我已经做了一些谷歌搜索 但无法得到确认的答案 Azure API 管理服务是否提供静态 IP 地址 如果没有 我该如何配置 我问的原因是因为我的本地服务器仅接受来自白名单 IP 地址的请求 因此我们需要来自 Azure API 管理的请求的
  • mingw 链接器找不到 PathAppend

    当我尝试编译以下内容时 include
  • 自定义设计EditText

    我有定制设计EditText 搜索页面 xml
  • 如何在 Redux 中处理两个连续且依赖的异步调用?

    我通过调用操作异步获取帖子列表fetchPosts从一个组件开始componentDidMount 我希望 一旦相关减速器 更新状态 收到并处理该请求 就调用另一个操作fetchPostsMetaData 包含刚刚收到的帖子 id 的数组
  • 像 Google Play 商店一样折叠工具栏

    我想实现一个像 google Play 商店一样的折叠工具栏 我已经实现了一些功能 但这仅适用于纵向屏幕 这是我能够执行的操作的屏幕截图示例 现在我想做的是 当我将设备方向更改为景观模式时 它应该看起来完全像这样 所以我的主要问题是如何处理
  • 如何处理大型 git 存储库?

    我目前正在使用 git 来构建大型存储库 大约 12 GB 每个分支的大小为 3 GB 该存储库包含大量二进制文件 音频和图像 问题是克隆和拉取可能需要很多时间 特别是 解决增量 步骤可能非常非常长 解决此类问题的最佳方法是什么 我尝试删除
  • 如何在javascript中检查异步加载的脚本是否已完成加载

    使用 javascript 异步下载另一个 javascript 文件 我知道这可以通过在页面上插入一个新的脚本标签来完成src属性设置为文件 url 脚本下载完成后 我还需要运行一些代码 我一直在使用yepnope http yepnop