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> 嵌入到主应用中的一种实现方式。

意思和实现方式:

  1. 微前端架构

    • 微前端是一种软件架构模式,旨在解决单体应用随着时间增长而变得复杂、难以维护和扩展的问题。它将大型单体应用拆分为更小的、独立的子应用,每个子应用可以由不同的团队独立开发、测试和部署。
  2. 基于 <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> 实现的部分微前端允许开发团队在技术上更为灵活,同时保持应用的独立性和隔离性,是微前端架构的一种实现方式。

再扯点题外的,今天我上午一上午只刷了两道前端面试题,因为我需要把面试题的答案吃透,所以需要把答案所涉及的知识点都学一遍。

而面试题和我平时敲代码还是有挺大区别的,敲代码 = 实战,面试题 = 八股文。

我虽然会敲代码、写项目,但是在面对面试题时却很多都答不上来,既然实战和面试的知识不对等,会不会导致大家为了找工作而把大部分精力放在面试八股文上,却忽略了真正重要的实战呢?

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值