使用 fetch API 时在 AJAX 调用期间显示微调器

2024-02-03

在我的项目中,我正在迁移到 React,因此不加载 JQuery。由于我不再使用 JQuery,因此对于 AJAX 调用我使用 fetch。使用 JQuery,我可以挂钩 AJAX 调用的开始和结束,因此可以非常轻松地将光标更改为微调器。我在 fetch 中找不到类似的钩子。除了在每个单独的 AJAX 调用中更改它之外,还有其他方法可以做到这一点吗?

很多谷歌搜索一直在寻找关于... JQuery 的答案。


就这样,我认为代码几乎是不言自明的:

// Store a copy of the fetch function
var _oldFetch = fetch; 

// Create our new version of the fetch function
window.fetch = function(){

    // Create hooks
    var fetchStart = new Event( 'fetchStart', { 'view': document, 'bubbles': true, 'cancelable': false } );
    var fetchEnd = new Event( 'fetchEnd', { 'view': document, 'bubbles': true, 'cancelable': false } );

    // Pass the supplied arguments to the real fetch function
    var fetchCall = _oldFetch.apply(this, arguments);

    // Trigger the fetchStart event
    document.dispatchEvent(fetchStart);

    fetchCall.then(function(){
        // Trigger the fetchEnd event
        document.dispatchEvent(fetchEnd);
    }).catch(function(){
        // Trigger the fetchEnd event
        document.dispatchEvent(fetchEnd);
    });

    return fetchCall;
};

document.addEventListener('fetchStart', function() {
    console.log("Show spinner");
});

document.addEventListener('fetchEnd', function() {
    console.log("Hide spinner");
});

这是一个活生生的例子:https://jsfiddle.net/4fxfcp7g/4/ https://jsfiddle.net/4fxfcp7g/4/

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

使用 fetch API 时在 AJAX 调用期间显示微调器 的相关文章

  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • jQuery UI 对话框 + 验证

    我在单击 保存 后使用 Jquery Validate 验证 jQuery UI 对话框时遇到问题 这是我创建 Jquery 对话框的代码 它从目标 href URL 加载对话框 document ready dialogForms fun
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • jqgrid删除:没有获取值

    我使用 JSP 和 Servlet IDE Eclipse 数据库 Oracle10 开发 Web 应用程序 我在用JQGRID以表格格式显示数据 我还想要添加 编辑 删除的功能JQGRID 到目前为止我已经完成了编辑功能 现在我想要Del
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • Google App Engine:修改云运行环境

    我正在尝试部署一个使用自定义 Node js 服务器的 Next js 应用程序 我想将自定义构建变量注入应用程序 next config js const NODE ENV process env NODE ENV const envTy
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 如何在react-native中获取Text组件的onPress值

    我是一名新的 React Native 开发人员 我想使用 onPress 获取 Text 组件的值并将其传递给函数
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • 如何防止 Vista 要求 patch.exe 提升权限?

    很抱歉 这不是一个直接的编程问题 但我最近换了一台新的 Vista 机器 我在其中保持 UAC 启用 请不要告诉我禁用它 这不是一个选项 每次我运行 gnu 的 patch exe 时 我都会收到一个来自 Vista 的提升对话框 如果我将
  • 水平对齐多个div(CSS)[重复]

    这个问题在这里已经有答案了 我需要对齐这些divs 使得 content1 和红色之间的空间div等于 content4 和红色之间的空间div 我不介意换蓝色div的边距 但这应该适用于任何宽度 我曾经通过制作来实现这一点4个蓝色的宽度d
  • 如何在 beforeunload 显示自己的模式对话框之前显示模式对话框?

    我确实明白不可能更换beforeunload带有自定义对话框的对话框 如果我们需要向用户设置自定义消息 则必须在 beforeunload 处理程序中返回一个字符串 Custom message here set by returning
  • (iOS) 如何检查 iPhone 已配对的蓝牙设备?

    我想使用 CoreBluetooth 因为我的应用程序必须符合 App Store 的资格 来检查所有当前配对和连接的蓝牙设备 这应该不需要任何蓝牙扫描 对吧 我只是想看看这个系统与什么配对 如果我做不到 扫描是第二个选择 我正在尝试的不起
  • dockerd 命令中开关 --containerd 的用途是什么?

    如果我跑systemctl cat docker service检查 docker service 的单元文件 ExecStart usr bin dockerd H fd containerd run containerd contain
  • 如何在不出现“进程已退出”异常的情况下终止进程?

    I use Process Kill 杀死一个进程 像这样 if process WaitForExit 5000 process Kill 有时进程会在两行之间退出 因此控制权会进入内部if进而Kill将产生异常 System Inval
  • SOMAXCONN在C套接字编程中意味着什么?

    我对C Linux Ubuntu 套接字编程中的somaxconn一无所知 我搜索了几个网站 但所有这些都对我没有多大帮助 listen sockfd SOMAXCONN 这是否意味着同时收听最大数量 连接的套接字 include
  • 从 JavaFX 打开外部应用程序

    我找到了一种使用 HostServices 在默认浏览器上打开链接的方法 getHostServices showDocument http www google com 有什么方法可以在默认媒体播放器中打开媒体吗 有什么办法可以启动特定的
  • 如何从方法返回 IEnumerable

    我正在为一个示例项目开发接口 我希望它尽可能通用 所以我创建了一个如下所示的接口 public interface IUserFactory IEnumerable
  • ASP.NET Identity 3.0 上的 IIdentityMessageService 的等效项是什么?

    在 ASP NET Identity 2 X 上 我们可以通过以下方式配置通知基础结构IIdentityMessageService接口可在Microsoft AspNet Identity Core库 未升级到版本 3 0 在 ASP N
  • mat-card-avatar 在初始页面加载时未正确呈现

    我有一个简单的垫卡头像布局 它在我的应用程序的许多页面的标题中显示圆形图标 我发现在许多页面上 但不是所有页面 即使使用相同类型的代码 都没有渲染mat card avatar正确地在初始渲染通道上 我正在使用这段代码 h1 div cla
  • .Net 微框架的 Json 库

    我正在使用 Net Microframework 运行一个轻型网络服务器 我想知道哪些库主要适用于 JSON 序列化 但也可能适用于反序列化 我发现很多 JSON 库的问题是它们使用 MF 中不可用的奇特 Net 功能 并且比我需要的更复杂
  • 使用 LINQ 确定序列不包含元素[重复]

    这个问题在这里已经有答案了 可能的重复 LINQ 最大还是默认 https stackoverflow com questions 341264 linq max or default 我有一些 LINQ 需要过滤DateTime vars
  • 删除行后留下的 FILESTREAM 文件

    我已经在我的 SQL 2008 服务器上成功设置了 FILESTREAM 但是我注意到 即使我删除了包含 FILESTREAM 数据的行 物理数据文件似乎也没有被删除 我所说的物理文件是指 SQLServer 托管目录中以唯一标识符作为文件
  • 将 PIL.Image 转换为 skimage

    我的项目中有 2 个模块 第一个模块以字节格式处理图像 第二个模块需要 skimage 对象 我需要将它们结合起来 我有这个代码 import io from PIL import Image import skimage io area
  • KnockoutJS css 绑定 != true

    我的视图模型正在返回truevalue 我正在尝试让我的模板相应地添加 CSS 问题是 我找不到 a true 的语法 我有这样的事情 div div 我想会说 如果选中 true 则应用 lw touched 如果选中 false 则应用
  • 行边框颜色

    我想设置边框 tr 至黄色 我可以设置边界 td 但不知道如何设置行边框 tr 这个怎么做 Thanks 这个例子 http jsfiddle net yahavbr a5TyU 在 IE8 Chrome 9 和 Firefox 3 6 上
  • Rubaxa Sortable 如何获取项目数组

    我知道这很明显 但我无法弄清楚 我正在使用 Rubaxa sortable 并且希望在添加 删除项目或对列表进行排序时使用 ajax 更新我的数据库 var editableList Sortable create document get
  • Prolog-映射(关联数组)

    我正在学习序言 想知道是否有人指导我如何做这个问题 这是这个领域的许多问题中的第一个 知道如何做这个问题将真正帮助我进步 先感谢您 使用 Prolog 定义一个谓词 mapof K M V 这样 当 K 实例化为键 M 实例化为映射而调用时
  • 使用 fetch API 时在 AJAX 调用期间显示微调器

    在我的项目中 我正在迁移到 React 因此不加载 JQuery 由于我不再使用 JQuery 因此对于 AJAX 调用我使用 fetch 使用 JQuery 我可以挂钩 AJAX 调用的开始和结束 因此可以非常轻松地将光标更改为微调器 我