新闻中心
显示等待动画:Await Fetch 期间的用户交互阻塞

本文介绍如何在 J*aScript 的 await fetch 调用期间显示一个全屏等待动画,从而阻塞用户与页面的进一步交互。通过创建一个覆盖整个页面的 div 元素,并利用 CSS 控制其显示与隐藏,可以实现一个简单的等待提示效果,提升用户体验。
在进行网络请求时,特别是使用 await fetch 进行异步操作时,用户可能需要等待一段时间才能看到结果。为了提升用户体验,可以在等待期间显示一个等待动画,并阻塞用户与页面的进一步交互,避免不必要的操作。
实现方法
主要思路是创建一个覆盖整个页面的 div 元素,并使用 CSS 控制其显示与隐藏。当发起 fetch 请求时,显示该 div 元素,当请求完成后,隐藏该 div 元素。
1. HTML 结构
首先,在 HTML 中添加一个 div 元素,用于显示等待动画。该 div 元素需要覆盖整个页面,并具有较高的 z-index 值,以确保其位于其他元素之上。
<div id="loading" style="position: fixed; z-index: 1000; width: 100vw; height: 100vh; top: 0; left: 0; display: flex; justify-content: center; align-items: center; display: none; background-color: rgba(0, 0, 0, 0.5);"> <span>Wait...</span> <!-- Loading spinner goes here --> </div>
解释:
- position: fixed: 将 div 元素固定在屏幕上,使其不随页面滚动而移动。
- z-index: 1000: 设置 div 元素的堆叠顺序,确保其位于其他元素之上。
- width: 100vw; height: 100vh: 设置 div 元素的宽度和高度,使其覆盖整个视口。
- top: 0; left: 0: 设置 div 元素的位置,使其位于屏幕的左上角。
- display: flex; justify-content: center; align-items: center: 使用 Flexbox 布局,将内容居中显示。
- display: none: 默认情况下,隐藏 div 元素。
- background-color: rgba(0, 0, 0, 0.5): 添加半透明的背景色,进一步遮盖页面内容。
2. J*aScript 代码
接下来,在 J*aScript 代码中,在发起 fetch 请求之前显示 div 元素,在请求完成后隐藏 div 元素。
AI Surge Cloud
低代码数据分析平台,帮助企业快速交付深度数据
87
查看详情
async function refreshStatus(mode) {
// 显示等待动画
document.getElementById("loading").style.display = "flex";
try {
var response = await fetch(
the_url,
{
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
},
body: JSON.stringify(dict)
}
);
const jdata = await response.json();
ldata = jdata["results_list"];
} catch (error) {
console.error("Error fetching data:", error);
// 处理错误情况
,例如显示错误消息
} finally {
// 隐藏等待动画
document.getElementById("loading").style.display = "none";
}
}解释:
- document.getElementById("loading").style.display = "flex";: 将 div 元素的 display 属性设置为 "flex",使其显示出来。 使用flex是为了让其中的内容居中显示。
- document.getElementById("loading").style.display = "none";: 将 div 元素的 display 属性设置为 "none",使其隐藏起来。
- try...catch...finally: 使用 try...catch...finally 块来处理可能发生的错误,并在 finally 块中确保等待动画始终被隐藏,即使发生错误。
3. 添加加载动画
为了让等待提示更加友好,可以在 div 元素中添加一个加载动画。可以使用 CSS 或 J*aScript 创建加载动画,也可以使用现成的加载动画库。例如,可以使用 Font Awesome 提供的加载图标:
<div id="loading" style="position: fixed; z-index: 1000; width: 100vw; height: 100vh; top: 0; left: 0; display: flex; justify-content: center; align-items: center; display: none; background-color: rgba(0, 0, 0, 0.5);">
<span>Wait...</span>
<i class="fas fa-spinner fa-spin fa-3x"></i>
</div>需要引入 Font Awesome 的 CSS 文件。
注意事项
- 在实际应用中,可以根据需要自定义等待动画的样式和内容。
- 确保在请求完成后及时隐藏等待动画,避免影响用户体验。
- 如果请求时间过长,可以考虑添加超时处理,并向用户显示提示信息。
- 使用 try...catch...finally 块来处理可能发生的错误,并在 finally 块中确保等待动画始终被隐藏。
- 考虑使用更高级的加载指示器库,例如NProgress或 Pace,它们提供了更丰富的定制选项和动画效果。
总结
通过创建一个全屏 div 元素,并使用 CSS 和 J*aScript 控制其显示与隐藏,可以实现在 await fetch 调用期间显示等待动画,并阻塞用户与页面的进一步交互。这种方法简单易用,可以有效地提升用户体验。 结合合适的加载动画和错误处理机制,可以创建一个更加友好和健壮的等待提示效果。
以上就是显示等待动画:Await Fetch 期间的用户交互阻塞的详细内容,更多请关注其它相关文章!
# 可以使用
# 微博seo伪原创
# 哪个博客框架seo好
# 保定营销网站推广联系人
# 文献资源如何做seo
# 网站网络推广教程图片
# 今日头条搜索seo
# 岚县网站推广服务电话
# 全网营销推广眯呐云速捷db冫
# 美团网的网站推广方案
# 惠州网站推广优化
# 设置为
# 完成后
# 可以实现
# 并在
# css
# 自定义
# 复选框
# 创建一个
# 加载
# 使其
# ai
# access
# app
# go
# json
# js
# html
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法
qq游戏大厅官方下载_qq游戏免费下载安装入口
腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程
J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题
写好的html代码怎么运行出来_运行写好的html代码方法【教程】
C++如何检测键盘输入_C++ _kbhit与_getch函数非阻塞输入
J*aScript中如何高效提取对象指定属性
qq音乐在线播放入口_qq音乐电脑版登录链接
腾讯视频怎么举报不良内容_腾讯视频内容举报流程与违规信息处理方法
PHP 枚举:根据字符串获取枚举案例的策略与实现
ArrayList与LinkedList核心操作的Big-O复杂度分析
AO3网页版最新入口合集 Archive of Our Own在线访问指南
mcjs网页版在线存档 mcjs云存档登录入口
vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法
千牛数据看板网页版_千牛数据看板网页版访问方法
妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画
Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南
机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等
c++如何实现单例设计模式_c++线程安全的单例模式写法
poki网页游戏推荐_poki免费游戏平台入口
Mac怎么使用表情符号_Mac Emoji快捷键面板
Spring Boot嵌入式服务器与J*a EE:功能支持深度解析
c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架
Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation
一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法
在Qt QML中通过Python字典动态更新TextEdit内容的教程
如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构
手机屏幕碎了但能正常使用怎么办 手机外屏碎裂的修复建议
使用Python高效删除Word宏并转换DOCM为DOCX格式
如何在Python中使用Optional类型处理可变对象并避免Pylint警告
在React函数组件中利用原生HTML5进行邮箱地址验证
Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧
sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南
钉钉视频会议画面卡顿如何解决 钉钉会议画面优化方法
EMS快递官网app_中国邮政速递物流手机客户端
如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略
抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站
智慧团建扫码登录入口 智慧团建扫码登录入口官网版
C++如何实现线程池_C++11手动实现一个简单的固定大小线程池
大象笔记网页版入口 印象笔记网页版登录入口
蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台
PHP URL参数传递与500错误调试指南
神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正
解决Python logging 中 datefmt 导致时间戳固定不变的问题
汽水音乐车机版8.9下载 汽水音乐车机版8.9版本安装入口
微信语音通话掉线如何解决 微信语音通话稳定优化方法
QQ官网正版登录链接 QQ在线登录入口最新
2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享
PyTorch模型训练效果不佳?深入剖析常见错误与调试技巧
天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】


2025-10-18
浏览次数:次
返回列表
,例如显示错误消息
} finally {
// 隐藏等待动画
document.getElementById("loading").style.display = "none";
}
}