当前位置: 首页 > news >正文

什么可以替代iframe?

网页嵌套中,iframe曾几何时不可一世,没有其他更好的选择!

iframe即内联框架,作为网页设计中的一种技术,允许在一个网页内部嵌套另一个独立的HTML文档。尽管它在某些场景下提供了便利,但也存在多方面的缺陷,主要包括:

  1. 加载时间延长:每个iframe都需要独立加载自己的HTML、CSS、JavaScript文件及图像等资源,这导致额外的HTTP请求,从而增加了页面的整体加载时间,尤其是当页面中包含多个iframe时。

  2. SEO影响:搜索引擎爬虫通常不会抓取或索引iframe中的内容,这意味着iframe中的信息不会有助于提升页面在搜索引擎结果中的排名,对SEO不友好。

  3. 调整大小和样式困难:iframe的内容可能与主页面的布局和样式不协调,调整其尺寸和外观可能较为复杂,影响用户体验。

  4. 安全性问题:iframe可能被用于恶意目的,如点击劫持、钓鱼攻击等,对用户的安全构成威胁。此外,不同源的iframe受到同源策略限制,增加了跨站脚本攻击(XSS)的风险。

  5. 资源竞争与阻塞:iframe与主页面共享网络连接资源,可能影响页面其他资源的并行加载,且iframe的加载可能会阻塞主页面的onload事件。

  6. 兼容性问题:不同的浏览器对iframe的支持程度和表现可能有差异,特别是在一些老版本或移动设备上的浏览器,可能导致布局错乱或功能失效。

  7. 代码复杂度增加:使用iframe会使页面结构变得更加复杂,不易维护,且iframe内的内容较难通过JavaScript进行操作和控制。

  8. 用户体验问题:过多的iframe可能导致页面出现多个滚动条,造成用户界面混乱,影响导航和阅读体验。

鉴于这些缺陷,开发者在使用iframe时应权衡其利弊,并考虑是否有现代替代方案,如Ajax、Web Components或使用API来获取和展示数据。

重点来了,这些代替方案都只是代码层面上的一些工作,本质上没有代替。如果从第一性原理来说,iframe的核心功能,就是页面嵌套!

不管什么方式,只要实现网页嵌套或者界面嵌套,那才是最重要的。现在介绍UIOTOS这块前端拖拽工具,做到比iframe还要给力的页面嵌套功能,而且还不需要任何代码属性设置,直接可视化拖拽编辑配置!

最重要的是,嵌套了如果通信还需要API代码调用,比如postMessage等,那就离了个大谱,UIOTOS有属性继承,就是说任意层的嵌套,都可以选择上层页面基础内嵌页面组件的属性,有点类似面向对象的图形化封装的概念了!

下面是UIOTOS的一些介绍:

UIOTOS可以了解下,uiotos.net,通过连线来代替脚本逻辑开发,复杂的交互界面,通过页面嵌套轻松解决,是个很新颖的思路,前端零代码!

蓝图连线尤其是独创的页面嵌套和属性继承技术,好家伙相当于把vue的组件化、增量式面向对象开发,直接搬到前端拖拽工具上,无代码编程了。

总的来说,UIOTOS里用连线代替脚本开发,复杂连线和界面,通过页面嵌套可以轻松解决。

官网给的介绍:

  • 一款拥有独创技术的前端零代码工具,专注于解决前端界面开发定制难题,原型即应用!
  • 具有页面嵌套、属性继承、节点连线等全新特性,学习门槛低,功能极为灵活。
  • 用户无需懂任何前端开发技术,简单了解使用规则,就能够按照业务需求,定制开发复杂的WEB应用。
  • 主要面向后端/算法工程师、硬件/电气工程师,以及产品经理、UI、美术、实施工程师等。

4c6738e41eb14c9e68f2e18dd42ffa87.jpeg

UIOTOS页面界面嵌套

1cd6202ceb473b6119cdde035c9c4dd8.jpeg

逻辑连线

be9da212f7673868f34384e176fbc9c0.jpeg

项目案例

  • 与低代码相比,UIOTOS是无代码工具,交付定制化的前端业务应用,对实施工程师无编程技能要求。

  • 与WEB组态相比,UIOTOS是一款可视化编程工具,不仅用于可视化,更能搭建复杂业务逻辑。

  • 与蓝图/NodeRed相比,UIOTOS提供的节点编辑连线变成能力,除了可支持工作流、规则链,更能实现交互、属性、业务逻辑更复杂的UI界面应用。

  • 与Vue前端框架相比,都支持增量化开发、一切都是组件,UIOTOS从完全无代码的层面,以特有的页面嵌套、属性继承和节点编程,实现跟代码开发趋于等同的效果。

  • 与iframe和微前端相比,UIOTOS在表现上有类似的嵌套聚合效果,但采用了独创的嵌套继承技术,让页面实现真正融合,页面和组件不再有区分,并且开箱即用,无需任何代码。

相关文章:

什么可以替代iframe?

网页嵌套中,iframe曾几何时不可一世,没有其他更好的选择! iframe即内联框架,作为网页设计中的一种技术,允许在一个网页内部嵌套另一个独立的HTML文档。尽管它在某些场景下提供了便利,但也存在多方面的缺陷…...

HTTP/1.0、HTTP/1.1、HTTP/2.0区别

文章目录 区别HTTP/1.0HTTP/1.11. 持久连接(长连接)2. 管道化3. Host头字段4. 分块传输编码5. 缓存机制6. 请求方法 HTTP/2.01. 二进制分帧2. 多路复用3. 服务器推送4. 优先级设置5. 头信息压缩6. 安全性7. 流量控制 区别 特性HTTP/1.0HTTP/1.1HTTP/2.0…...

鸿蒙内核源码分析(文件句柄篇) | 你为什么叫句柄

句柄 | handle int open(const char* pathname,int flags); ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, const void *buf, size_t count); int close(int fd);只要写过应用程序代码操作过文件不会陌生这几个函数,文件操作的几个关键步骤嘛,跟把大…...

2024.5.8 关于 SpringCloud —— Ribbon 的基本认知

目录 Ribbon 负载均衡原理 工作流程 Ribbon 负载均衡规则 Ribbon 负载均衡自定义化 代码方式修改规则 配置文件方式修改规则 小总结 Ribbon 设定饥饿加载 Ribbon 负载均衡原理 工作流程 order-service 使用 RestTemplate 发送请求,随后该请求将会被 Ribbon 所…...

Lua 协程模拟 Golang 的 go defer 编程模式

封装go函数用于创建并启动一个协程: ---go函数创建并启动一个协程 ---param _co_task function 函数原型 fun(_co:thread) function go(_co_task)local co coroutine.create(_co_task) -- 创建一个暂停的协程coroutine.resume(co, co) -- 调用coroutine.resume激活…...

maven的安装与配置(超详细)

在Java开发中,配置Maven环境有几个重要的原因: 依赖管理:Maven 是一个强大的依赖管理工具,它能够帮助开发人员轻松地管理项目所需的各种第三方库和组件。通过在项目的 Maven 配置文件(pom.xml)中定义依赖&…...

springCloud服务降级使用到的组件

服务降级在Spring Cloud中通常使用的组件包括断路器(Circuit Breaker)和降级处理器(Fallback)。以下是它们的概念表述: 断路器(Circuit Breaker):断路器是一种设计模式,…...

Spring框架学习-详细

文章目录 1. Spring简介1.1 面向接口编程1.2 Spring简介1.3 Spring体系结构 2 Spring IoC - 基于XML2.1 Sping框架部署(IoC)2.2 Spring IoC使用2.3 IoC和DI2.4 DI依赖注入Spring容器通过反射方法实现属性注入有三种方式1. set方法注入2. 构造器注入 2.5 …...

fatal: fetch-pack: invalid index-pack output

解决方案:git clone --depth1 要克隆的git地址 下载最近一次提交的代码 其他分支的内容都不下载 这样整体下载体量就变小了 执行命令:git clone --depth 1 https://gitlab.scm321.com/ufx/xxxx.git...

相机购买指南

佳能1000D 上市时间:2008年6月 简介: 佳能1000D具有1010万有效像素和7点宽区域自动对焦系统。DIGIC III影像处理器的应用使高ISO画质得到提升。小巧的机身和优质的成像质量可以满足初级用户对旅游便携与高画质的要求。使用了DIGIC III影像处理器&#x…...

STM32微秒级别延时--F407--TIM1

基本配置: TIM1挂载在APB2总线上,150MHz经过15分频,得到10MHz计数频率,由于disable了自动重装载,所以只需要看下一次计数值是多少即可。 void TIM1_Delay_us(uint16_t us) //使用阻塞方式进行延时,ARR值不…...

AI图书推荐:杀手级ChatGPT提示词——利用人工智能实现成功与盈利

《杀手级ChatGPT提示词——利用人工智能实现成功与盈利》(Killer ChatGPT Prompts_ Harness the Power of AI for Success and Profit )一书是作者Guy Hart-Davis关于ChatGPT的指南,ChatGPT是OpenAI开发的大语言模型。这本书提供了各种职业角…...

AI时代:低代码与人工智能引领科技创造新时代

随着科技的飞速发展,我们步入了一个崭新的时代——AI时代。在这个时代,低代码和人工智能技术如日中天,成为引领科技创造的新引擎。本文将围绕这一主题,探讨低代码和人工智能如何在各个领域发挥巨大作用,推动科技创造迈…...

1.基于python的单细胞数据预处理-降维可视化

目录 降维的背景PCAt-sneUMAP检查质量控制中的指标 参考: [1] https://github.com/Starlitnightly/single_cell_tutorial [2] https://github.com/theislab/single-cell-best-practices 降维的背景 虽然特征选择已经减少了维数,但为了可视化&#xff0…...

【快捷部署】023_HBase(2.3.6)

📣【快捷部署系列】023期信息 编号选型版本操作系统部署形式部署模式复检时间023HBase2.3.6Ubuntu 20.04tar包单机2024-05-07 注意:本脚本非全自动化脚本,有2次人工干预,第一次是确认内网IP,如正确直接回车即可&#…...

Nginx配置项详解

Nginx,以其高性能、稳定性强、资源消耗低的特性,成为众多网站和应用首选的Web服务器及反向代理服务器。其配置文件的灵活性和丰富性是其强大功能的关键所在。本文将深入解析Nginx配置文件中的核心概念与关键配置项,帮助您更好地理解和定制Ngi…...

解决iview(view ui)中tabs组件中使用图片预览组件ImagePreview,图片不显示问题

同学们可以私信我加入学习群! 正文开始 前言一、问题描述二、原因分析三、解决方案总结 前言 最近在写个人项目的web端和浏览器插件,其中一个功能是base64和图片的转换。因为分成四个小功能,所以使用的iview的tabs来展示不同功能&#xff0c…...

R2S+ZeroTier+Trilium

软路由使用ZeroTier搭建远程笔记 软路由使用ZeroTier搭建远程笔记 环境部署 安装ZeroTier安装trilium 环境 软路由硬件:友善 Nanopo R2S软路由系统:OpenWrt,使用第三方固件nanopi-openwrt。内网穿透:ZeroTier。远程笔记&…...

10 华三vlan技术介绍

AI 解析 -Kimi-ai Kimi.ai - 帮你看更大的世界 (moonshot.cn) 虚拟局域网(VLAN)技术是一种在物理网络基础上创建多个逻辑网络的技术。它允许网络管理员将一个物理网络分割成多个虚拟的局域网,这些局域网在逻辑上是隔离的,但实际…...

实现一个聊天室可发送消息语音图片视频表情包(任意文件)

文章目录 如何跑通代码仓库地址客户端登录发送消息接受消息发送文件接受文件 服务端接受消息并发送给各个客户端接受文件并发送给各个客户端 如何跑通 将手机和电脑都连自己的热点先运行服务器得到可监听的地址更新客户端安卓消息线程和文件线程的socker目标地址为可监听地址然…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

golang循环变量捕获问题​​

在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下: 问题背景 看这个代码片段: fo…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"&#xff0…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...