iframe框架及优缺点

HTML5不再支持使用frame,关于frameiframe的区别,可以参阅 iframe与frame的区别。

基本使用

  • src:规定在iframe中显示的文档的URL
  • frameborder:规定是否显示框架周围的边框。
  • scrolling:规定是否在iframe中显示滚动条。
  • width:规定iframe的宽度,建议使用CSS替代。
  • height:规定iframe的高度,建议使用CSS替代。
  • sandbox:启用一系列对iframe中内容的额外限制。
  • marginwidth:定义iframe的左侧和右侧的边距。
  • marginheight:定义iframe的顶部和底部的边距。
  • srcdoc:规定在iframe中显示的页面的HTML内容。
  • align:规定如何根据周围的元素来对齐此框架,建议使用样式替代。

使用场景

加载其他域的网页

<iframe>是允许跨域请求资源的,但是不能够修改,由此可以在网页中嵌套其他网页,如需要跨域通信的话,需要考虑document.domainwindow.namewindow.postMessage

典型系统结构

典型的系统结构,左侧是功能树,上部为个人信息,右侧就是实际功能,使用iframe将功能单独分离出来,当然也可以使用vuereact进行实现。

实现Ajax

可以使用iframe进行实现异步请求发送,来模拟Ajax的请求操作,Ajax的异步请求完成操作为XHR.readyState === 4执行callbackiframe使用iframe.onload执行callback,还可以实现一个轮询长连接。

加载广告

广告是与原文无关的,假如硬编码进去,会造成网页布局的紊乱,而且这样势必需要引入额外的cssjs文件,极大的降低了网页的安全性,使用iframe便可以解决这些问题。

提交表单

可以使用iframe提交表单来避免整个页面的刷新,还可以实现无刷新文件上传的操作。

优缺点

优点

  1. 可以跨域请求其他网站,并将网站完整展示出来。
  2. 典型系统结构可以提高代码的复用性。
  3. 创建一个全新的独立的宿主环境,可以隔离或者访问原生接口及对象。
  4. 模块分离,若多个页面引用同一个iframe,则便于修改操作。
  5. 实现广告展示的一个解决方案。
  6. 若需要刷新iframe则只需要刷新框架内,不需要刷新整个页面。

缺点

  1. iframes阻塞页面加载,影响网页加载速度,iframe加载完毕后才会触发window.onload事件,动态设置src可解决这个问题。
  2. 加载了新页面,增加了cssjs文件的请求,即额外增加了HTTP请求,增加了服务器负担。
  3. 有时iframe由于页面挤占空间的原因出现滚动条,造成布局混乱。
  4. 不利于SEO,搜索引擎的爬虫无法解读iframe的页面。
  5. 有些小型的移动设备如手机等无法完全显示框架,兼容性较差。
  6. iframe与主页面是共享链接池的,若iframe加载时用光了链接池,则会造成主页面加载阻塞。

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.zhihu.com/question/20653055
https://www.cnblogs.com/hq233/p/9849939.html
https://blog.csdn.net/baxiadsy_csdn/article/details/86245809

iframe框架及优缺点相关推荐

  1. [html] iframe框架都有哪些优缺点?

    [html] iframe框架都有哪些优缺点? 优点重载页面时不需要重载整个页面,只需要重载页面中的一个框架页技术易于掌握,使用方便,可主要应用于不需搜索引擎来搜索的页面方便制作导航栏缺点会产生很多页 ...

  2. php e框架是啥,几款主流PHP框架的优缺点评比

    PHP语言还是比较常用到的一门计算机高级语言.我们将会在这篇文章中向大家主要介绍关于PHP框架相关优缺点评比,作为一个参考风险给朋友们. 主要参考的PHP框架包括:CodeIgniter.CakePH ...

  3. 广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B...

    广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B 注:域名B为afish.cnblogs.com 域名A页面代码: <!DOCTYPE html PUBLIC ...

  4. Python+selenium 自动化-切换窗口页签、切换iframe框架。确定页面是否包含iframe方法。

    切换窗口页签: 0是左边第一个,-1是右边第一个. windows = driver.window_handles # 获得所有窗口的句柄 driver.switch_to.window(window ...

  5. 在iframe框架中全屏不好使的原因

    遇到的问题:我是在iframe框架中添加了一个插件在360和火狐中不好使,将allowfullscreen="true" 属性配置好就没问题了: 可能出现的原因:将allowful ...

  6. 几种location.href的区别 js实现网页防止被iframe框架嵌套功能 .

    首先我们了解一下:window.location.href.location.href.self.location.href.parent.location.href.top.location.hre ...

  7. js实现网页防止被iframe框架嵌套及几种location.href的区别

    首先我们了解一下几种location.href的区别简单的说:几种location.href的区别js实现网页被iframe框架功能,感兴趣的朋友可以了解下 首先我们了解一下:window.locat ...

  8. php开发用框架优缺点,剖析PHP开发中主流PHP框架的优缺点

    如今,每个企业乃至最大的商业巨头都希望拥有一个功能齐全的网站以便有效的提高特定业务的品牌价值.PHP 是一种开源的服务器端脚本语言,已经成为定制网站构建解决方案最合适和最有效的语言.在此,小编挑选出了 ...

  9. html怎样同框架页面内跳转,使用iframe框架时,实现子页面内跳转到整个页面,而不是在子页面内跳转...

    首先先来描述一下我所遇到的问题,我在一个首页的index.jsp页面中用到了iframe框架,见下图 在iframe中引入jsp页面的路径,是几个iframe框架组合成的一个完整的页面,但是他们的存在 ...

最新文章

  1. MPTCP 源码分析(五) 接收端窗口值
  2. cas单点登录原理碎碎念
  3. python分布式爬虫及数据存储_分布式爬虫
  4. 回溯法遵循深度优先吗_闲来刷下「回溯算法」
  5. C语言科技感图片,科技感与运动范十足,几何C黑棚图曝出,年轻消费者又多了新选择...
  6. MySQL(2)数据库管理
  7. 将C#中DateTime类型转化为JavaScript中的Date类型
  8. 超级楼梯(HDU-2040)
  9. 公司的年度汇报怎么写 年底述职报告写法
  10. Java:Swing篇,实现JList、JTextArea的自动滚动,实时刷新功能
  11. js打印线程id_Node.js多线程完全指南[每日前端夜话0x43]
  12. flops什么意思中文_不知道什么是FLOPs?进来瞧瞧~
  13. 【codevs1052】地鼠游戏
  14. Addressable 增量包
  15. 思科交换机配置trunk模式及vtp
  16. MATLAB图像处理_YUV格式详解
  17. 大数据部门的作用与大数据工程师的工作
  18. TOR交换机和普通交换机有什么区别?
  19. Android获取本机号码闪退,手机号码是移动的,现在手机已经停机,想充话费却不知道本机号码,肿么查询本机号码?()...
  20. 获取Angular中的AngularJS功能

热门文章

  1. Kubernetes入门实践--部署运行Go项目
  2. 树的几种遍历方式(递归/非递归)
  3. Spring中的@Value注解详解
  4. 并发容器(J.U.C)中的队列类
  5. HBuilder制作WAP2APP之给APP增加或注入分享功能
  6. MySQL · 源码分析 · change master to
  7. 读书笔记2013第16本:《删除:大数据取舍之道》
  8. svn 提交 working copy is not up-to-date
  9. iOS小技巧---改变uisearchbar中的cancel按钮的文字、取消clearButton
  10. 基于TCP和多线程实现无线鼠标键盘-Socket(2)