Minimize Number of iframes (尽量少用iframe)

本文探讨了HTML中的iframe元素及其潜在问题,如安全风险、兼容性和性能影响,并提供了使用脚本和AJAX作为替代方案的方法。

这一篇我和大家讨论的是第二十一条原则:Minimize Number of iframes (尽量少用iframe)。

iframe以及与之相关的frameset,frame 都是早期HTML版本的产物,我记得在我第一次使用FrontPage创建网站的时候(那真的是很多年前了),确实用过它们,那时候其实主要用的是HTML,连ASP都是刚刚作为新事物被介绍,更不要说什么ASP.NET,以及AJAX等方面的新鲜玩意儿了。

frame 是必须嵌套在frameset里面用的,可以将它们理解为在一个页面大框架里面,定义了几个不同的框架,组成的一个框架集。每个框架可以加载一个页面。而iframe本质上就是一个frame,只不过是inner-frame(内联框架),也就是说这种框架是不需要有框架集的,可以自成一体,随意嵌套在页面的任意地方。

【备注】iframe在HTML的后续版本(例如HTML 5)中还是支持的,但frameset和frame 已经明确地要告别历史舞台了。

 

iframe可以用来做什么呢?

  1. 它使得在一个网页中嵌入另外一个网页变得可能。
  2. 为了避免这些嵌入的网页对我们自己的网页产生不利的影响,iframe实现了一个安全沙箱(Security Sandbox)。关于这一点,在HTML 5中进行了更加明确和丰富地支持。你可以参考
  3. 使用iframe可以实现并行的脚本下载。因为在框架里面是一个独立的运行环境,它里面的资源可以和主页面的资源并行下载。

 

目前新浪微博提供的“微博秀”还是用iframe来实现的。

image

iframe 可能的问题?

  1. 安全问题:像上面提到的那样,虽然有安全沙箱,但其实还是有安全风险的。因为iframe引用的是别人做的网页。
  2. 兼容性问题:并非所有浏览器都能很好地支持iframe。
  3. 性能问题:iframe会导致页面加载变慢。
  4. 其他问题:iframe的宽度和高度不能自动适应内容大小。

 

iframe替代方案

如果不用iframe,那么如何在页面中嵌入其他网站的内容呢?绝大部分时候,脚本可以实现iframe的功能。例如

  1. Google的广告代码:http://blog.sina.com.cn/s/blog_4bec262601000947.html (因为没有办法访问到Google的网站,所以我找了一篇参考文档)
  2. 网站分享边栏代码:http://www.jiathis.com/getcode

【备注】使用脚本的方式,前提是你完全信任这些脚本。而iframe唯一的好处在于它可以对外部页面的行为做限制(通过安全沙箱)

 

如果你仅仅是要动态插入另外一个网页的内容到当前网页上,你可以直接使用AJAX的方式,例如

  1. get : http://api.jquery.com/jQuery.get/
  2. load : http://api.jquery.com/load/

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器的建模与仿真展开,重点介绍了基于Matlab的飞行器动力学模型构建与控制系统设计方法。通过对四轴飞行器非线性运动方程的推导,建立其在三维空间中的姿态与位置动态模型,并采用数值仿真手段实现飞行器在复杂环境下的行为模拟。文中详细阐述了系统状态方程的构建、控制输入设计以及仿真参数设置,并结合具体代码实现展示了如何对飞行器进行稳定控制与轨迹跟踪。此外,文章还提到了多种优化与控制策略的应用背景,如模型预测控制、PID控制等,突出了Matlab工具在无人机系统仿真中的强大功能。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及从事无人机系统开发的工程师;尤其适合从事飞行器建模、控制算法研究及相关领域研究的专业人士。; 使用场景及目标:①用于四轴飞行器非线性动力学建模的教学与科研实践;②为无人机控制系统设计(如姿态控制、轨迹跟踪)提供仿真验证平台;③支持高级控制算法(如MPC、LQR、PID)的研究与对比分析; 阅读建议:建议读者结合文中提到的Matlab代码与仿真模型,动手实践飞行器建模与控制流程,重点关注动力学方程的实现与控制器参数调优,同时可拓展至多自由度或复杂环境下的飞行仿真研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值