layui后台框架怎么去掉iframe加载时的空白闪烁现象

阿宇酱_2440

阿宇酱_2440

2026-11-06

693人浏览

原创

避免 iframe 加载空白闪烁的核心是用 about:blank 占位并延迟赋真实地址,配合 loading 遮罩、资源预加载优化及动态创建 iframe 节点。

layui后台框架怎么去掉iframe加载时的空白闪烁现象

去掉 iframe 加载时的空白闪烁,核心是避免“先显示空 iframe、再加载内容”这个视觉断层。Layui 默认行为就是立即插入 iframe 标签并设 src,网络延迟或页面渲染慢时,用户就会看到几帧白屏或默认背景色。

用 about:blank 占位 + 延迟赋真实地址

这是最直接有效的做法:先让 iframe 加载一个确定能秒开的空页,绑定好事件后再换真实 URL,确保 onerror 和 onload 都能稳定触发。

  • 在 success 回调里拿到 iframe 元素后,立刻设 iframe.src = 'about:blank'
  • 紧接着绑定 onerror 和 onload 事件
  • 最后再把真实地址赋给 src,真正触发加载

示例代码:

layer.open({
  type: 2,
  content: '/user/edit.html',
  success: function(layero, index) {
    const iframe = layero.find('iframe')[0];
    if (!iframe) return;
    iframe.src = 'about:blank';
    iframe.onerror = () => {
      layer.msg('页面加载失败', { icon: 2 });
      layer.close(index);
    };
    iframe.onload = () => {
      // 可选:加载完成后自动适配高度
      layer.iframeAuto(index);
    };
    iframe.src = '/user/edit.html'; // 此刻才开始加载目标页
  }
});

加 loading 层遮罩,掩盖加载过程

用户感知不到白屏,是因为视线被遮住了。可在 iframe 插入后、加载完成前,盖一层半透明 loading 提示。

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
  • 在 success 中用 layer.load(2, { shade: [0.1, '#fff'] }) 显示轻量 loading
  • 在 iframe 的 onload 或 onerror 里调用 layer.closeLoad() 关闭
  • 注意:不要用 layer.msg 或 layer.alert,它们会打断操作流

预加载关键资源,缩短首屏时间

闪烁本质是加载慢。如果目标页面本身体积大、依赖多,光靠前端遮掩治标不治本。

  • 服务端开启 gzip / brotli 压缩,特别是 HTML 和 JS
  • 目标页面内联关键 CSS,推迟非首屏 JS(如用 defer 或动态 import)
  • 若页面含 Layui 组件,确认没重复加载 layui.js —— 子页应复用父页已加载的实例
  • 对静态资源(图标、字体)使用 CDN,并设置合理缓存头

禁用浏览器对 iframe 的预解析干扰

某些浏览器会在 iframe 插入 DOM 后立即尝试预加载 src,即使你还没赋值。可通过动态创建 iframe 节点来规避。

  • 不用 type: 2 自动创建,改用 type: 1 + 手动拼 iframe 标签
  • 在 success 中创建 iframe 元素、设 src="about:blank"、绑定事件,再 append 到 layer 内容区
  • 最后再设真实 src —— 整个过程完全可控,无隐式行为

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2843

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

6223

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

7130

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6958

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

983

5

iframe写法有哪些
iframe写法有哪些

iframe写法有基本Iframe写法、嵌套Iframe写法、自适应宽高的Iframe写法、带有样式和属性的Iframe写法、内联Iframe写法和使用JavaScript动态创建Iframe写法。种写法都有自己的特点和适用场景。根据实际需求,选择合适的写法可以实现所需的功能和效果。

2023.10.19

2583

8

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 13.1万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 11.5万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习