HTML前端面试题之<iframe>标签
面试题:iframe 标签的作用是什么?有哪些优缺点 ?
讲真,刷这道面试题之前我根本没有接触过iframe,网课没讲过,项目实战没用过,但却在面试题里出现了!好吧,我只能说:前端路漫漫,学无止境……
好吧,那就借机学习一下iframe
<iframe>标签简介
<iframe>标签是 HTML中的一个元素,用于在当前 HTML文档中嵌入另一个 HTML文档。它可以在一个 HTML页面中嵌入另一个 HIML页面或其他类型的文档,比如 PDF 文件或视频文件。
<iframe>标签的主要作用是将一个页面嵌入到另一个页面中。例如,在一个页面中嵌入一个地图或一个视频,或者在一个页面中嵌入一个在线表单。都可以使用<iframe>标签。
代码示例:在网页中嵌入Webpack官网的首页
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>使用iframe嵌入网页</title>
</head>
<body><h1>欢迎访问我们的网站!</h1><p>这里是我们网站的主页内容。</p><h2>Webpack官方网站</h2><!-- 使用iframe嵌入新闻网页 --><iframe src="https://webpack.docschina.org/concepts/#entry" width="600" height="400" title="Latest News"><!-- 如果浏览器不支持iframe,则显示此内容 --><p>抱歉,您的浏览器不支持嵌入框架,请<a href="https://webpack.docschina.org/concepts/#entry">点击这里</a>查看网站内容。</p></iframe><p>继续浏览我们的网站内容...</p>
</body>
</html>
浏览器预览效果
<iframe>标签优缺点
<iframe>标签的优点包括
可以让页面嵌入其他网站或文档,从而扩展页面的功能。
可以使用一个单独的文档来管理页面的内容,从而简化页面的管理。
可以在一个页面中嵌入多个,从而允许多个不同的内容在同一页面中显示。
<iframe>标签的缺点包括
可能会影响页面的加载速度和性能,特别是在页面中嵌入大型媒体文件时。
可能会影响页面的可访问性,因为屏幕阅读器可能无法读取嵌入的内容。
可能会导致安全风险,因为嵌入的文档可以访问父页面的JavaScript 对象,从而可能被用于恶意攻击
补充:这题如果有同学能提到部分微前端的实现是基于 iframe 的,会加分
好的,那么,什么是微前端呢?
微前端是一种软件架构模式,旨在解决单体应用随着时间增长而带来的复杂性、维护困难以及团队协作上的挑战。它通过将大型单体应用拆分为更小、更独立的部分(通常称为微前端应用或子应用),每个部分可以由不同的团队独立开发、测试和部署。
部分微前端基于 <iframe>
实现,通常指在微前端架构中,将不同的子应用(或称微前端应用)作为独立的 HTML 页面通过 <iframe>
嵌入到主应用中的一种实现方式。
意思和实现方式:
-
微前端架构:
- 微前端是一种软件架构模式,旨在解决单体应用随着时间增长而变得复杂、难以维护和扩展的问题。它将大型单体应用拆分为更小的、独立的子应用,每个子应用可以由不同的团队独立开发、测试和部署。
-
基于
<iframe>
的实现:- 在微前端架构中,每个子应用可以作为一个独立的前端项目,它们可以使用不同的技术栈、框架甚至语言来开发。为了将这些子应用整合到主应用中,可以使用
<iframe>
元素将它们嵌入到主页面中。
- 在微前端架构中,每个子应用可以作为一个独立的前端项目,它们可以使用不同的技术栈、框架甚至语言来开发。为了将这些子应用整合到主应用中,可以使用
示例:
假设一个电子商务平台拥有多个功能模块,如商品展示、购物车、支付等,每个模块可以作为一个微前端子应用。这些子应用可以独立开发,最终通过 <iframe>
嵌入到主应用的页面中,形成一个统一的用户界面。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>主应用</title>
</head>
<body><h1>电子商务平台</h1><!-- 嵌入商品展示子应用 --><iframe src="https://products.example.com" width="100%" height="600px"></iframe><!-- 嵌入购物车子应用 --><iframe src="https://cart.example.com" width="100%" height="400px"></iframe><!-- 嵌入支付子应用 --><iframe src="https://checkout.example.com" width="100%" height="300px"></iframe></body>
</html>
在这个示例中,每个 <iframe>
嵌入了一个不同的子应用,分别是商品展示、购物车和支付。这些子应用可以独立开发和部署,通过主应用的统一界面提供完整的电子商务功能。
总结来说,基于 <iframe>
实现的部分微前端允许开发团队在技术上更为灵活,同时保持应用的独立性和隔离性,是微前端架构的一种实现方式。
再扯点题外的,今天我上午一上午只刷了两道前端面试题,因为我需要把面试题的答案吃透,所以需要把答案所涉及的知识点都学一遍。
而面试题和我平时敲代码还是有挺大区别的,敲代码 = 实战,面试题 = 八股文。
我虽然会敲代码、写项目,但是在面对面试题时却很多都答不上来,既然实战和面试的知识不对等,会不会导致大家为了找工作而把大部分精力放在面试八股文上,却忽略了真正重要的实战呢?
相关文章:

HTML前端面试题之<iframe>标签
面试题:iframe 标签的作用是什么?有哪些优缺点 ? 讲真,刷这道面试题之前我根本没有接触过iframe,网课没讲过,项目实战没用过,但却在面试题里出现了!好吧,我只能说:前端路漫漫&…...

Docker-Compose实现MySQL之主从复制
1. 主服务器(IP:192.168.186.77) 1.1 docker-compose.yml services:mysql-master:image: mysql:latest # 使用最新版本的 MySQL 镜像container_name: mysql-master # 容器的名称environment:MYSQL_ROOT_PASSWORD: 123456 # MySQL root 用户的密码MYSQL_DATABASE: masterd…...

jetson显卡没有加速,而是在用cpu推理?
jetson的库,特别是使用显卡的库,大多需要单独安装 大概率是重装了pytorch,可以使用jetson官网的pytorch! 下面是官网的链接 PyTorch for Jetson - Announcements - NVIDIA Developer Forums 安装完成之后先使用命令查看是否安…...
Linux下如何安装配置Fail2ban防护工具
Fail2ban是一款在Linux服务器上用于保护系统免受恶意攻击的防护工具。它通过监视系统日志,检测到多次失败的登录尝试或其他恶意行为后,会自动将攻击源的IP地址加入防火墙的黑名单,从而阻止攻击者进一步访问服务器。本文将介绍如何在Linux系统…...
js的深浅拷贝
深浅拷贝是编程中对数据复制的两种不同方式,它们在处理对象和数组等复合数据结构时尤为重要。下面将详细解释这两种拷贝方式。 浅拷贝(Shallow Copy) 浅拷贝创建了原始对象的一个新实例,但这个新实例的属性只是原始对象属性的引…...

实验八: 彩色图像处理
目录 一、实验目的 二、实验原理 1. 常见彩色图像格式 2. 伪彩色图像 3. 彩色图像滤波 三、实验内容 四、源程序和结果 (1) 主程序(matlab (2) 函数FalseRgbTransf (3) 函数hsi2rgb (4) 函数rgb2hsi (5) 函数GrayscaleFilter (6) 函数RgbFilter 五、结果分析 1. …...

Python酷库之旅-第三方库Pandas(048)
目录 一、用法精讲 171、pandas.Series.nlargest方法 171-1、语法 171-2、参数 171-3、功能 171-4、返回值 171-5、说明 171-6、用法 171-6-1、数据准备 171-6-2、代码示例 171-6-3、结果输出 172、pandas.Series.nsmallest方法 172-1、语法 172-2、参数 172-3、…...

springboot爱宠屋宠物商店管理系统-计算机毕业设计源码52726
目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…...

自训练和增量训练word2vec模型
1、自己准备训练语料文件 根据自己的业务场景准备训练数据,比如用户在商城上的同购行为序列或同浏览行为序列。 我们希望通过自己训练业务相关的语料word2vec模型来获得词嵌入、词相关性查询等。 1.1 准备语料库文件 # 示例:准备自己的一个大规模的语…...

华三路由器开启web访问
配置路由器: # 配置Web用户名为admin,认证密码为admin,服务类型为http,用户角色为network-admin。 [Sysname] local-user admin [Sysname-luser-manage-admin] service-type http [Sysname-luser-manage-admin] authorization…...

C++软件开发值得推荐的十大高效软件分析工具
目录 1、概述 2、高效软件工具介绍 2.1、窗口查看工具SPY 2.2、Dependency Walker 2.3、剪切板查看工具Clipbrd 2.4、GDI对象查看工具GDIView 2.5、Process Explorer 2.6、Prcoess Monitor 2.7、API Monitor 2.8、调试器Windbg 2.9、反汇编工具IDA 2.10、抓包工具…...
vue2老项目中node-sass更换dart-sass
更换原因:node-sass经常会出现node版本问题,就很麻烦 卸载项目中的node-sass sass-loader npm uninstall sass-loader sass 安装dart-sas sass-loader 推荐安装sass1.26.2 sass-loader7.3.1 npm install sass-loader7.3.1 sass1.26.2 从新配置vue.…...
源/目的检查开启导致虚拟IP背后的LVS无法正常访问
情况描述 近期发现48网段主机无法访问8.83这个VIP(虚拟IP),环境是 8.83 绑定了两个LVS实例,然后LVS实例转发到后端的nginx 静态资源;整个流程是,客户端发起对VIP的请求,LVS将请求转发到后端实例…...

类和对象(四)
构造函数中的初始化列表 之前在实现构造函数时,主要是在函数体内进行赋值,而构造函数还有另一种初始化方式,通过初始化列表进行初始化。 初始化列表的使⽤⽅式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成员列表,…...

<PLC><HMI><汇川>在汇川HMI画面中,如何为UI设置全局样式?
前言 汇川的HMI软件是使用了Qt来编写的,因此在汇川的HMI程序编写过程,是支持使用qt的样式来自定义部件样式的,即qss格式。 概述 汇川的软件本身提供三个系统的style样式,我们可以直接使用,但是,如果系统提供的样式不符合你的需求,那么你可以对其进行修改,或者自己新建…...
在Git项目中添加并应用“.gitignore”文件
在Git项目中添加并应用.gitignore文件 创建或修改.gitignore文件: 在项目的根目录下创建一个名为.gitignore的文件。如果已经有此文件,可以直接修改。 在文件中添加您希望Git忽略的文件和目录。例如: # 忽略所有的log文件 *.log# 忽略所有的…...

LeetCode Hot100 搜索二维矩阵
给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。…...
iOS中的KVO(Key-Value Observing)详解
iOS中的KVO(Key-Value Observing)详解 一、KVO概述 KVO(Key-Value Observing),即键值观察/监听,是苹果提供的一套事件通知机制。它允许一个对象(观察者)观察/监听另一个对象&#…...

算法 —— 暴力枚举
目录 循环枚举 P2241 统计方形(数据加强版) P2089 烤鸡 P1618 三连击(升级版) 子集枚举 P1036 [NOIP2002 普及组] 选数 P1157 组合的输出 排列枚举 P1706 全排列问题 P1088 [NOIP2004 普及组] 火星人 循环枚举 顾名思…...

构造+有序集合,CF 1023D - Array Restoration
一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1023D - Array Restoration 二、解题报告 1、思路分析 先考虑合法性检查: 对于数字x,其最左位置和最右位置 之间如果存在数字比x小,则非法 由于q次操作,第q…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...